2013-02-06 90 views
0

我是一箇舊的Android程序員,但我過去只使用活動,我是相當新的碎片。回到片段保持其以前的狀態

我已經創建了一個菜單欄(4個按鈕)的應用程序,點擊時應該在菜單欄上方加載一個不同的片段。 問題是,每次點擊其中一個菜單欄按鈕時,它都會重新加載完整的片段,我希望它能夠將片段顯示在其以前的狀態(就像設備後退按鈕一樣)。

我該怎麼做這樣的事情?從主要活動

電話:

Fragment my_fragment = new MyFragment(); 
    FragmentManager fragment_manager = getSupportFragmentManager(); 
    FragmentTransaction fragment_transaction = fragment_manager.beginTransaction(); 
    fragment_transaction.replace(R.id.fragment_container, my_fragment); 
    fragment_transaction.addToBackStack(null); 
    fragment_transaction.commit(); 

和我的大部分MyFragment過程代碼是在功能

onActivityCreated

回答

1

您還可以使用的onSaveInstanceState方法,在活動中,恢復數據使用Bundle savedInstanceState對象,例如

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putInt("test", 1); 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    if (savedInstanceState != null) { 
     int testValue = savedInstanceState.getInt("test", 0); 
    } 
} 

http://developer.android.com/guide/components/fragments.html

+1

謝謝。但是有沒有一種簡單的方法來調用片段,並將其與之前的確切狀態一起加載而不做任何特殊的事情?如果我使用設備「後退」按鈕導航,那就是它的功能。 – thomaus