2016-07-26 30 views
0

我已經創建了一個片段,我使用recyclerview和recyler項目可以選擇/取消選擇。但問題是,當我移動到其他片段並回到相同的片段,然後選擇丟失的數據。如何恢復在recyclerView選擇的項目的Android片段的狀態

我怎樣才能得到像以前的條件,其中選定的項目將在選定的條件下片段。

+0

覆蓋'onSaveInstanceState'和/或'onPause','onResume'並在那裏保存相關數據。 – Vucko

+0

我認爲這是因爲你沒有保存選定項目的數據。當您切換回來時,您的片段將被重新創建。現在,如果你還沒有存儲選擇的項目。它會顯示您的默認值或過去的數據。 – Dexter

回答

0

嘗試使用SaveInstanceState讓檢查下面

public class MainFragment extends Fragment { 

    // These variable are destroyed along with Activity 
    private int someVarA; 
    private String someVarB; 

    ... 

    @Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putInt("someVarA", someVarA); 
     outState.putString("someVarB", someVarB); 
    } 

    @Override 
    public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     someVarA = savedInstanceState.getInt("someVarA"); 
     someVarB = savedInstanceState.getString("someVarB"); 
    } 

} 

一個樣品有內部片段沒有onRestoreInstanceState方法。 對於片段,有一些特殊情況與Activity不同,我認爲您需要了解它。一旦Fragment從backstack返回,它的View將被銷燬並重新創建。