2016-07-26 6 views
0

私はrecyclerviewとrecylerアイテムを使用したフラグメントを選択/選択解除できます。しかし、問題は、私が他のフラグメントに移動して同じフラグメントに戻ると、選択されたデータが失われてしまうことです。recyclerViewがアイテムを選択した場合のアンドロイド・フラグメントの状態を復元する方法

選択したアイテムが選択された状態になる前の状態と同じように、フラグメントを取得する方法はありますか。

+0

「onSaveInstanceState」および/または「onPause」、「onResume」をオーバーライドし、関連するデータをそこに保存します。 – Vucko

+0

あなたが選択したアイテムのデータを保存していないためだと思います。元に戻すとフラグメントが再び作成されます。選択したアイテムをまだ保存していない場合デフォルト値または過去のデータが表示されます。 – Dexter

答えて

0

は断片内部には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を使用してみてください。 フラグメントの場合、アクティビティとは異なる特別なケースがあります。あなたはそれについて知る必要があると思います。フラグメントがバックスタックから返されると、そのビューは破棄され、再作成されます。

関連する問題