2016-11-01 95 views
0

我有一個主要活動A,其上有4個片段。按鈕單擊時,片段依次出現。如何導航到之前活動的前一個片段

我點擊最後一個片段(第四)按鈕後,我被帶到一個新的活動B.

我如何能實現後退按鈕按這樣就可以了,當用戶點擊。他被帶到活動A的第四部分?

+0

所以你想要進入活動B的第四部分活動B? – Real73

+0

好吧,首先我想說,你不會從片段中做到這一點。 (不!)你會做一個回調的活動,將爲您管理這個。只需保留一個堆棧在活動級別即可。 – StarWind0

回答

2

你需要使用回棧。每次添加更改片段時,都需要將該片段添加到後退堆棧中。

//Create an instance of your fragment; 
MyFragment frag = MyFragment.newInstance(); 
//replace the fragment in a normal fragment transaction 
getSupportFragmentManager().beginTransaction() 
       .replace(R.id.container, frag, "MyFragment Tag") 
       //add to the back stack 
       .addToBackStack(f) 
       .commit(); 

關於這一點,現在是後退按鈕將遍歷每個以前的片段。因此,點擊片段3後,如果您點擊後退按鈕,您將看到片段2等。

這可能不是您想要的結果,因此您可能只想添加片段到後退堆棧片段4.

0

您可以從活動B將數據傳遞到活動A,onBackPressed功能

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    Intent i = new Intent(getApplicationContext(), AcvityA.class); 
    i.putExtra("position","4"); 
    startActivity(i); 

}

在活動爲您提供

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    String position = extras.getString("position"); 
    //load the fragment based in position 
} 

希望這有助於裏面。問候

相關問題