2013-01-13 58 views
2

我有2個活動返回到先前的選項卡時,活性被破壞

  1. MainActivity
  2. ProjectActivity

MainActivity有3個標籤(片段)

  1. Frag1
  2. Frag2
  3. Frag3

當我去Frag2並點擊操作欄上的'添加'按鈕時,ProjectActivity啓動。在項目活動中,當我點擊'取消'按鈕時,我再次啓動MainActivity。但是現在當MainActivity啓動時,它顯示Frag1。

如何將我的代碼更改爲顯示Frag2,因爲用戶之前在Frag2上?

當單擊取消按鈕時,我使用這個簡單的代碼來啓動MainActivity。

intent = new Intent(this, MainActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

回答

2

請勿重新啓動主要活動。改爲使用finish()。這會將您帶回原始的MainActivity而不是創建一個新的。這與您從後退按鈕獲得的行爲相同。

請參閱Tasks and Back Stack以獲得有關背部堆疊的更深入視圖。

+0

我第一次看到這個。一羣人有像你下面那個人的解決方案,但這絕對是它應該完成的方式。謝謝! – Gowiem

0

您可以維護一個變量來保存當前選項卡並在onPause()中更新。同時檢查onResume()中的相同變量並相應地設置當前選項卡。