0
我已經創建了一個片段,我使用recyclerview和recyler項目可以選擇/取消選擇。但問題是,當我移動到其他片段並回到相同的片段,然後選擇丟失的數據。如何恢復在recyclerView選擇的項目的Android片段的狀態
我怎樣才能得到像以前的條件,其中選定的項目將在選定的條件下片段。
我已經創建了一個片段,我使用recyclerview和recyler項目可以選擇/取消選擇。但問題是,當我移動到其他片段並回到相同的片段,然後選擇丟失的數據。如何恢復在recyclerView選擇的項目的Android片段的狀態
我怎樣才能得到像以前的條件,其中選定的項目將在選定的條件下片段。
嘗試使用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將被銷燬並重新創建。
覆蓋'onSaveInstanceState'和/或'onPause','onResume'並在那裏保存相關數據。 – Vucko
我認爲這是因爲你沒有保存選定項目的數據。當您切換回來時,您的片段將被重新創建。現在,如果你還沒有存儲選擇的項目。它會顯示您的默認值或過去的數據。 – Dexter