一、對於兩個頁面之間相互傳值,跳轉的時候我們使用 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(); } }