startActivityForResult 用法

用法 :如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity传回数据,为了得到传回的数据,必须在前面的Activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法。


当新Activity关闭后,新Activity返回的数据通过Intent进行传递,android平台会调用前面Activity 的onActivityResult()方法,把存放了返回数据的Intent作为第三个输入参数传入,在onActivityResult()方法中使用第三个输入参数可以取出新Activity返回的数据。


使用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新Activity关闭前需要向前面的Activity返回数据需要使用系统提供的setResult(int resultCode, Intent data)方法实现。


例如:Activity1调用Activity2,当Activity处理完之后返回Activity1

Activity1:

                Intent i = new Intent(Activity1.this, Activity2.class);
		Bundle b = new Bundle();
		b.putString("one", first_data);
		b.putString("two", second_data);
		i.putExtras(b);
		startActivityForResult(i, 0);



还要重写一个方法:用于接收并处理Activity2返回的数据

@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data)
	{
Activity2:

                Intent i = this.getIntent();
		Bundle b = new Bundle();
		b.putString("return_value", value);
		i.putExtras(b);
		this.setResult(RESULT_OK, i);
		this.finish();

当执行完this.finish()时,它便会自动返回到调用它的那个Activity,并会触发前一个Activity的 onActivityResult方法 ,在这里即是Activity1中的 onActivityResult方法。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值