`
java-mans
  • 浏览: 11432433 次
文章分类
社区版块
存档分类
最新评论

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方法。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics