淺析:Acitivity間數據的傳遞

使用startActivityForResult方法進行數據傳遞。

 

MainActivity.java:

1 public class MainActivity extendsActivity {

 2    Button  btn;

 3    @Override

 4    protected void onCreate(Bundle savedInstanceState) {

 5        super.onCreate(savedInstanceState);

 6        setContentView(R.layout.activity_main);

 7        Button btn=(Button)findViewById(R.id.button1);

 8        btn.setOnClickListener(new OnClickListener(){

 9            @Override

10             public void onClick(View arg0) {

11                 Intent intent=newIntent(MainActivity.this,OtherActivity.class);

12                startActivityForResult(intent,1);   

13             }       

14        });

15            

16        

17    }

18    protected void onActivityResult(int requestCode,int resultCode,Intentdata){

19        switch(requestCode){

20        case 1:

21        String result=data.getExtras().getString("result");

22        }

23    }   

24

25 }

 

OtherActivity.java

1 public class OtherActivity extendsActivity {

 2    Button btn2;   

 3    /**

 4      *@param args

 5     */

 6    protected void onCreate(Bundle savedInstanceState) {

 7        super.onCreate(savedInstanceState);

 8        setContentView(R.layout.activity_other);

 9        Button btn2=(Button)findViewById(R.id.button2);

10        btn2.setOnClickListener(new OnClickListener(){

11

12             @Override

13             public void onClick(View arg0) {

14                // TODO Auto-generatedmethod stub

15                 Intent intent=new Intent();

16                intent.putExtra("result", "hello world");

17                OtherActivity.this.setResult(resultcode, intent);

18                 OtherActivity.this.finish();

19             }});

20    }

21 }

 

注:

1.請求碼requestCode:startActivityForResult(intent,requestCode)和onActivityResult(intrequestCode,int resultCode,Intent data)中的requestCode爲請求碼, 它的作用是用於標識請求來源。例如:一個Activity有兩個按鈕,點擊這兩個按鈕都會打開同一個Activity,不管是那個按鈕打開新Activity,當這個新Activity關閉後,系統都會調用前面 Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。在onActivityResult()方法如果需要知道新Activity是由那個按鈕打開的,並且要做出 相應的業務處理。

 

2.結果碼resultCode:在一個Activity中,可能會使用startActivityForResult()方法打開多個不同的Activity處理不同的業務,當這些新Activity關閉後,系統都會調用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。爲了知道返回的數據來自於哪個新Activity,在onActivityResult()方法中可以這樣做(Result Activity和NewActivity爲要打開的新Activity)。

 

PS:對於APP安全檢測一般我都會用:www.ineice.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章