首页 > 代码库 > startActivityForResult简介

startActivityForResult简介

在Activity中 startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,

当新的Activity关闭后会向前面的Activity传回数据,

为了能得到传回的数据,必须在旧的Activity中覆写onActivityResult(int requestCode, int resultCode, Intent data)方法,

而在新的Activity通过setResult(int resultCode,Intent data)调用, 第一个参数是请求码,第二个参数是携带返回数据的Intent。

调用setResult后系统会回调旧的Activity中的startActivityForResult方法。

 

下面直接看例子

旧的Activity A

 1      button2.setOnClickListener(new View.OnClickListener(){
 2             public void onClick(View v) {
 3                  startActivityForResult (new Intent(MainActivity.this, NewActivity.class), 2);
 4 
 5             }
 6 
 7         });
 8 
 9                          
10        @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
11                switch(requestCode){
12                    case 1:
13                    //返回编号
14                    case 2:
15                    //返回编号
16                 }
17           }

 

新的ActivityB

 public  class  ActivityB extends Activity{
         ......
    New1Activity.setResult(1 , intent);
    finish();
   }