2

私は、クラスのオブジェクトのリストを含むrecyclerViewを持っています。現在、私がアプリケーションを閉じると、recyclerView内のすべてのリストが失われ、アプリケーションを再起動すると、recyclerViewには何も表示されません(リストなし)。RecyclerViewリストの保存状態

私が閉鎖され破壊された後でもリストを保持するために何をどのように使用しますか?

public class Info { 
public String pName; 
public String pContact; 
public Character pGender; 
public int pID; 
public String tDateTime; // today's date and time 
} 

私はこのクラスのオブジェクトをarraylistに保存して、私のrecyclerviewアダプターに移入しています。

+0

ローカルデータベースを使用してこのデータを保存することができます。http://www.androidauthority.com/how-to-store-data-locally-in-android-app-717190/ –

+0

あなたのリストに表示するデータ?あなたのソースを共有できますか? – JavadKhan

+0

データの入力方法は?とにかくそのソースが必要です。データを手動で入力し、EditTextで入力する場合は、sqliteデータベースを使用する必要があります。 – JavadKhan

答えて

0

保存状態:

protected void onSaveInstanceState(Bundle state) { 
    super.onSaveInstanceState(state); 

    // Save list state 
    mListState = mLayoutManager.onSaveInstanceState(); 
    state.putParcelable(LIST_STATE_KEY, mListState); 
} 

状態の復元:活動に

@Override 
protected void onResume() { 
    super.onResume(); 

    if (mListState != null) { 
     mLayoutManager.onRestoreInstanceState(mListState); 
    } 
} 
+0

私はこれを試しましたが、うまくいきませんでした。 RecyclerViewはアプリの終了後も空のままです。 –

+0

ログエラーとソースコードを共有します。 –

1

オーバーライドonSaveInstanceStateと、お使いのモデルの状態ではなく保存します。その後のLayoutManagerを更新

protected void onRestoreInstanceState(Bundle state) { 
    super.onRestoreInstanceState(state); 

    // Retrieve list state and list/item positions 
    if(state != null) 
     mListState = state.getParcelable(LIST_STATE_KEY); 
} 

をレイアウトマネージャの状態ビューにデータがまったく表示されていれば、データモデルはどこかにあるはずです。

非常に少なくても、現在モデルに入っているアイテムの数だけを記憶する必要があります。これは、モデルが必要な項目の内容をどこかから取得できるかどうかです。そうでない場合、または時間がかかる場合は、表示されているアイテムも州に含める必要があります。状態を復元する必要があります

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putSerializable("d.list.data", adapter.getState()); 
} 

そして、何かのように:

if (savedInstanceState != null) { 
    adapter.setState(savedInstanceState.getSerializable("d.list.data")); 
} 

Hereは保存してRecyclerViewで使用するモデルの状態が適用されたクラスのコードです。

+0

Llink is break :( – ramaral

+1

リンクが修正されるようになりました。 – h22

関連する問題