使用 Bundle 在 Activity 间传递数据 activity1跳转到activity2中,然后activity2中返回值给activity1中 实例
Activity1
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=new Button(this);
button.setOnClickListener(
new OnClickListener(){
public void onClick(View v)
{
Intent intent=new Intent(); //声明intent
intent.setClass(MainActivity.this,newactivity.class); //启动另一个activity
startActivityForResult(intent, 2); //带参数 intent和请求码 跳转过去,并接收回传值
}
}
);
setContentView(button);
}
protected void onActivityResult(int requestCode,int resultCode,Intent data) //在源请求 Activity 中等待 Intent 返回应答结果,通过重载 onActivityResult()方法
{
super.onActivityResult(requestCode, resultCode, data); //super调用父类函数 这行代码去除也可以运行
if(requestCode==2) //如果请求码是,传递过去的startActivityForResult(intent, 2); 码一样,那么运行下面
{
if(resultCode==5) //如果验证结果码是5 运行下面
{
setTitle("Cancel"); //设置应用程序标题
}
else if(resultCode==2) //如果验证结果码是2 运行下面
{
setTitle("手动"); //设置应用程序标题
}
}
}
目标Activity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Intent intent=new Intent(); //声明一个intent
Bundle bundle=new Bundle(); //声明一个bundle
bundle.putString("key1", "这是回传的"); //向bundle中放入值和内容
intent.putExtras(intent); //把bundle中附加到intent中
setResult(5,intent); //返回上面activity结果码
finish(); //隐藏到后台
}
finish();//隐藏到后台,并没有退出 System.exit(0);//完全退出应用程序