在Android应用程序中,两个Activity间是通过Bundle来进行数据传递的。
1)从源Activity向目标Activity传递数据:
源Activity传数据(数据写入): Intent writeIntent=new Intent();
Bundle bundle=new Bundle();
bundle.putString("Key_Name","laoban");
bundle.putString("Key_Age","23");
writeIntent.putExtras(bundle);
writeIntent.setClass(Activity.this,Activity2.class);
startActivity(writeIntent);
目标Activity镇南关获取数据: Bundle bundle=this.getIntent().getExtras();
String name=bundle.getString("Key_Name");
2)源Activity转向目标Activity后,源Activity等待目标Activity返回的结果数据:从源请求Activity中通过一个Intent把一个服务请求传到目标Activity中,
然后在源请求Activity中等待Intent返回应答结果,通过重载
onActivityResult()方法
源Activity: Intent intent=new Intent();
intent.setClass(Activity.this,Activity2.class);
startActivityForResult(intent,REQUEST_ASK)
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode,resultCode,data);
if(requestCode==REQEST_ASK){
if(resultCode==RESULT_OK){
bundle=data.getExtras();
}else if(resultCode==RESULT_CANCELED){..}
}
}
目标Activity:intent=new intent(); //目标Activity中发送请求结果代码,连同源Activity请求的数据一同绑定到Bundle中通过Intent
bundle=new Bundle(); // 传回源请求Activity中
bundle.putString("myName",Name);
intent.putExtras(bundle);
setResult(RESULT_OK,intent); finish();