2012-08-28 44 views
0

我有一個具有HomeActivity和4個活動A,B,C,D的應用程序。 我想要點擊HomeActivity中的按鈕start_activity_A_btn來活動星級活動A,並且A開始B,B開始C,C開始D,然後done按鈕將我帶到HomeActivity。
注意:在每個活動(A,B,C,D)中,我有一些data保存並按下done按鈕後返回HomeActivity。如何在打開多個活動時返回到第一個活動

回答

1

你需要做使用下面的標誌在你的意圖是什麼(請檢查鏈接,它解釋了類似的情況,你所面臨的一個):FLAG_ACTIVITY_REORDER_TO_FRONT。所以,在你的活動d,在onClickListener爲完成按鈕,這裏是你必須使用代碼:

Intent intent = new Intent(this, ActivityAname.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
intent.putExtra("data", dataYouReceiveFromABCD); 
startActivity(intent); 

這將讓你的一個活動恢復。

現在,關於「數據」,如果可能的話,您將不得不使用某個分隔符將這些數據存儲在字符串中(因爲您沒有告訴我們這些數據是什麼),所以如果它是一個用戶名和密碼,你可以使用字符的隨機組合將有可能永遠不會發生(「246 @ $ ^」),其將二者分開,然後自顧自地創建您繼續建立在A,B,C和d,然後終於在一個字符串D你把這個String作爲額外的意圖(檢查我上面發佈的代碼)。如果是一些其他類型的數據,那麼,是否可以幫助你也許可以序列化。但是,如果您確實使用帶有預定分隔符的字符串,那麼您只需要在活動A中使用活動A的onResume()方法中的以下代碼。

if(this.getIntent().getExtras().getString("data") != null) 
{ 
    String data = this.getIntent().getExtras().getString("data"); 
    //do some stuff here with that data 
} 
+0

我希望接收的數據被INT [],所述陣列將被從HomeActivity發送並且將具有在每一個活性的一些修改,B,C,d,然後HomeActivity將再次收到它 –

+0

我會嘗試你的代碼,並給你的反饋,謝謝 –

+0

它的工作原理謝謝 –

0

如果您需要返回活動的數據,則應使用startActivityForResult啓動ABCD。這非常類似於您的HomeActivity打開一些對話框,一旦完成活動(通過按完成或取消,取決於),您在HomeActivity中獲得onActivityResult

+0

我知道這個方式,但我要關閉所有選項卡和回程從d到HomeActivity而不經過A,B,C –

相關問題