0

我正在研究android應用程序,讓我們假設我的應用程序中有以下活動:act1,act2和act3。如何在應用程序再次打開時恢復最近的片段

上面的每個活動都有一個片段,例如act1 - > frag1,act2 - > frag2等。

當我的應用程序正在運行,我打開frag1,然後我按下我的手機上的主頁按鈕。我將被引導到我的電話的主頁。

和ethir如果我按下啓動的圖標或再次按下後退按鈕應用程序恢復/打開act1而不是frag1。

所以我的問題在這裏,如何使應用程序打開最近的片段而不是活動? frag1而不是act1。

謝謝, 如果你想要更多的信息,如代碼示例請告訴我。

+0

你需要處理onBackPressed事件 –

+0

試試這個https://開頭stackoverflow.com/questions/7992216/android-fragment-handle-back-button-press –

+0

我還需要重新打開它時,我再次點擊已啓動的圖標像whatsapp ap摺疊。 –

回答

0

創建整數全球

int CurrentFragment=-1; 

當你調用片段在活動設置以下整數的值等,值應該爲每一個片段是唯一的。

Fragment fragment1=new FirstFragment() 
CurrentFragment=0; 
    ft.replace(R.id.content_user_home, fragment1, fragment.toString()); 
       ft.addToBackStack(backStateName); 
       ft.commit(); 

如果要調用另一個片段呼叫這樣

Fragment fragment2=new SecondFragment() 
CurrentFragment=1; 
    ft.replace(R.id.content_user_home, fragment1, fragment.toString()); 
       ft.addToBackStack(backStateName); 
       ft.commit(); 

在檢查的onResume價值CurrentFragment在開關箱

Switch(CurrentFragment){ 
case 0: 
Fragment fragment1=new FirstFragment() 
CurrentFragment=0; 
    ft.replace(R.id.content_user_home, fragment1, fragment.toString()); 
       ft.addToBackStack(backStateName); 
       ft.commit(); 
break; 

case 1: 
Fragment fragment2=new SecondFragment() 
CurrentFragment=1; 
    ft.replace(R.id.content_user_home, fragment1, fragment.toString()); 
       ft.addToBackStack(backStateName); 
       ft.commit(); 
break; 
} 
相關問題