startActivityForResult与startActivity的不同之处在于: 1、startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。 2、startActivityForResult( )
可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult(
)方法。
例如:
1、startActivity( )
在OneActivity中存数据:
Intent intent=new Intent(OneActivity.this,TwoActivity.class);
intent.putExtra("text",
text_Str);
startActivity(intent);
在TwoActivity中获取数据:
Intent intent=getIntent();
intent.getStringExtra("text");
2、startActivityForResult( )
1跳转
Intent intent=new Intent(OneActivity.this,TwoActivity.class);
intent.putExtra("text", text_Str);
startActivityForResult(intent,0);
2重写onActivityResult();
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) { //resultCode为回传的标记,我在B中回传的是RESULT_OK
case RESULT_OK:
Intent int=data.getExtras(); //data为B中回传的Intent
String
text=int.getString("text");//text即为回传的值
break;
default:
break;
}
}
3.在TwoActivity中回传数据时采用setResult方法,并且之后要调用finish方法。
setResult(RESULT_OK, intent);
finish();//此处一定要调用finish()方法
|