码迷,mamicode.com
首页 > 移动开发 > 详细

Android学习-调用onActivityResult()接收返回来的信息

时间:2015-08-11 18:14:01      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

  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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!