Android 安卓实现页面相互跳转并相互传递参数

时间:2023-03-08 20:49:57
Android 安卓实现页面相互跳转并相互传递参数

一、对于两个页面之间相互传值,跳转的时候我们使用 startActivityForResult(intent,0),而不是startActivity(intent) 这个方法

   第一个页面中在触发跳转的按钮中写上

            Intent intent=new Intent(MainActivity.this,SecondActivity.class);
//将text框中的值传入
intent.putExtra("name",text.getText().toString());
//为了接受SecondActivity中的值,不用startAcitivity(intent)
startActivityForResult(intent,1000); //两个动画之间的动画描述
overridePendingTransition(R.anim.enter, R.anim.exit);

二、在第二个人Activity中回传数据采用setResult的方法,并在最后调用finish()

        Intent intent =getIntent();
Bundle bundle= intent.getExtras();
String Name=bundle.getString("name");
SecondActivity.this.setTitle("欢迎光临"+Name); bt1.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent(SecondActivity.this,MainActivity.class);
//将text框中的值传入
intent.putExtra("backname",text.getText().toString());
setResult(1001, intent);
// 结束当前这个Activity对象的生命
finish(); //SecondActivity.this.finish();
}
});

三、在第一个页面中重写onActivityResult方法,用来接收第二个Activity回传的数据

@Override
//重写了onAcitivityResult
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1000 && resultCode == 1001)
{
String result = data.getStringExtra("backname");
MainActivity.this.setTitle("收到"+result);
Toast.makeText(getApplicationContext(), "取消", Toast.LENGTH_LONG).show();
}
else if(requestCode == 1000 && resultCode == 1002)
{
String result = data.getStringExtra("backname");
MainActivity.this.setTitle("收到"+result);
Toast.makeText(getApplicationContext(), "确定", Toast.LENGTH_SHORT).show();
}
}

源码地址:http://download.csdn.net/download/qq_34793108/9836860