在安卓中常常遇到需要从另外界面获取数据,然后携带数据跳转回来,这就要用到startActivityForResult方法实现双向跳转。
1. 我们可以在第一个activity中这样写
Intent intent= new Intent(FirstActivity.this,SecondActivity.class);
startActivityForResult(intent,1);
其实 1是请求码,用于intent传输数据的识别。FirstActivity中发送请求码,SecondActivity返回响应码,只有两个全部对应,才能返回数据。
2. 在FirstActivity中还应有onActivityResult方法,接受传输回来的数据。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1&&resultCode){
str=data.getStringExtra("car");
Log.e("=============",str);
car.setText(str); //将返回的数据应用于ui的更新。
}
}
onActivityResult中三个参数,分别为请求码,响应码,请求回来的数据data(也就是intent携带回来的数据)
- 在SecondActivity中将数据放入intent中,携带回FirstActivity。
public void onClick(View view) {
String str = (String) adapter.getItem(position);
Intent intent =new Intent();
intent.putExtra("car",str);
Log.e("------------str=",str);
setResult(2, intent); //intent携带的数据返回上面的data中。
finish();
}
就这样就完成了一个activity携带数据双向跳转。