活動A啓動活動B
。
Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivityForResult(intent);
使用startActivityForResult從活動A啓動活動B.
用戶觸發 活動B
一些用戶界面的變化。
活動B返回到活動A(由 調用onBackPressed()或類似的東西 )
Intent intent = new Intent();
intent.putExtra("change_value1", change1);
intent.putExtra("change_value2", change2);
setResult(RESULT_OK, intent);
finish();
活動A重新啓動活動B.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
/*
* Gets invoked on finish() from ActivityB.class
*/
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case 0:
if(resultCode == RESULT_OK){
String change1, change2;
change1 = data.getStringExtra("change_value1");
change2 = data.getStringExtra("change_value2");
Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivity(intent);
}
}
}
你可以閱讀更多關於意向here。
感謝您的答覆。 我仍然希望有一個更清潔的方法。直覺上,我期望一個存在,因爲android處理切換回父活動的方式。我想這是現在最好的方法。 感謝您的幫助。 – aakash 2010-06-11 07:32:44
@aandroid - 如果你熟悉事件處理,這很直觀。你仍然通過一個'Intent'開展這項活動,那裏沒有新東西。活動A只是通過回調處理程序處理活動B的結果。 – 2010-09-24 18:04:50