0
私はrecyclerviewとrecylerアイテムを使用したフラグメントを選択/選択解除できます。しかし、問題は、私が他のフラグメントに移動して同じフラグメントに戻ると、選択されたデータが失われてしまうことです。recyclerViewがアイテムを選択した場合のアンドロイド・フラグメントの状態を復元する方法
選択したアイテムが選択された状態になる前の状態と同じように、フラグメントを取得する方法はありますか。
私はrecyclerviewとrecylerアイテムを使用したフラグメントを選択/選択解除できます。しかし、問題は、私が他のフラグメントに移動して同じフラグメントに戻ると、選択されたデータが失われてしまうことです。recyclerViewがアイテムを選択した場合のアンドロイド・フラグメントの状態を復元する方法
選択したアイテムが選択された状態になる前の状態と同じように、フラグメントを取得する方法はありますか。
は断片内部にはonRestoreInstanceState方法はありません
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");
}
}
下記つのサンプルを確認できますSaveInstanceStateを使用してみてください。 フラグメントの場合、アクティビティとは異なる特別なケースがあります。あなたはそれについて知る必要があると思います。フラグメントがバックスタックから返されると、そのビューは破棄され、再作成されます。
「onSaveInstanceState」および/または「onPause」、「onResume」をオーバーライドし、関連するデータをそこに保存します。 – Vucko
あなたが選択したアイテムのデータを保存していないためだと思います。元に戻すとフラグメントが再び作成されます。選択したアイテムをまだ保存していない場合デフォルト値または過去のデータが表示されます。 – Dexter