标签:
1、在调用另外一个activity时是为了得到返回来的值时,若选择通讯录时候进入通讯录只是返回一个电话号码等等,我们可以调用startActivityForResult();
Intent intent=new Intent();
intent.setAction("com.example.multiactivity.SecondActivity3");
intent.addCategory("android.intent.category.DEFAULT");
Bundle b=new Bundle();
b.putString("name1", "zp");
b.putString("name2", "db");
intent.putExtras(b);
startActivityForResult(intent, 0);//0参数是请求码,一般设为0,在调用多个activity时候请求码用来标识是哪个请求返回的数据。
2、通常是在点击事件,如listview的item中点击选择了联系人,就返回联系人,即在被调用的activity里将数据存入intent,并调用finnish返回数据
Intent in=new Intent();
in.putExtra("name3", "cy");
setResult(0, in); //此处的0是结果码,用户可以给结果码设定特殊的含义例如此处若是联网操作,可以定义结果码为200时候是返回连接成功,出现异常时候返回403 连接错误
finish();
3、在返回的activity里要覆写onActivityResult(int requestCode, int resultCode, Intent data)方法,
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); System.out.println("请求码:"+requestCode); System.out.println("结果码:"+resultCode); //结果码为返回时候设置的 if(requestCode==0)//所有的返回数据的操作都是调用该函数完成,当多次调用activity返回的值时候,根据startActivityForResult时候设置的请求码来处理 { String st="1"; if(data!=null) st=data.getStringExtra("name3"); ed.setText(st); }
}
例如下图的操作,点击“选择第一个联系人”时将requestcode设为0,在点击“选择第二个联系人”请求码设为1,在onActivityResult(int requestCode, int resultCode, Intent data)方法里根据返回的requestCode来采取相应的操作,将相对应Edittext里的数据设为电话号码。
Android学习-调用onActivityResult()接收返回来的信息
标签:
原文地址:http://www.cnblogs.com/bokeofzp/p/4721249.html