2014-07-24 28 views
1

我有多個片段與我想要保存的數據,並且能夠從不同的片段進行訪問。我如何保存我的片段的狀態

如果我只想保存某個特定片段的狀態,我該怎麼做?

這裏是我當前如何導航:

片段 「1」

case R.id.imageButton1: 

      Fragment fragment2; 
      fragment2 = new Frag2(); 
      //fragment2.setArguments(args); 
      FragmentManager frgManager = getFragmentManager(); 
     // frgManager.putFragment(bundle, key, fragment) 
      frgManager.beginTransaction().replace(R.id.content_frame, fragment2) 
        .commit();  

      break; 

片段 「2」

switch(v.getId()){ 


case R.id.imageButton2: 
    Fragment fragment; 
    fragment = new Frag1(); 
    fragment.setArguments(fragment.getArguments()); 
    android.app.FragmentManager frgManager = getFragmentManager(); 
    frgManager.beginTransaction().replace(R.id.content_frame, fragment) 
      .commit(); 
    break; 

case R.id.imageButton1:  
    fragment = new LifeFrag3(); 
    android.app.FragmentManager frgManage = getFragmentManager(); 
    frgManage.beginTransaction().replace(R.id.content_frame, fragment) 
      .commit(); 
    break; 

我也試圖通過在散列存儲值傳遞數據地圖,然後使用暫停和恢復傳遞鍵,但我沒有運氣。 :/

回答

1
@Override 
public void onCreate(Bundle savedInstanceState) { 
    ... 
    if (savedInstanceState != null) { 
     mContent = getSupportFragmentManager().getFragment(
        savedInstanceState, "mContent"); 
    } 
} 

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
getSupportFragmentManager().putFragment(outState, "mContent", mContent); 
}