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(); } }