2017-09-06 10 views
1

2つのRecyclerViewアダプタがあります。そして、私はこれらの2つのアダプタでSharedPreferencesを使用しています。android - 2つの異なるRecyclerViewAdapter間で共有プリファレンスを使用する方法

最初のアダプタでは、String.valueOf(dataList.size())のようなaraayListサイズのString値を保存しています。

public class ItemRowHolder extends RecyclerView.ViewHolder { 

      protected TextView itemTitle; 

      protected RecyclerView recycler_view_list; 

      protected TextView lblnoOfItems; 


      public ItemRowHolder(View view) { 
       super(view); 

       this.itemTitle = (TextView) view.findViewById(R.id.itemTitle); 
       this.recycler_view_list = (RecyclerView) view.findViewById(R.id.recycler_view_list); 
       this.lblnoOfItems = (TextView) view.findViewById(R.id.lblnoOfItems); 

       sharedPreferences = mContext.getSharedPreferences("DataList", Context.MODE_PRIVATE); 
       SharedPreferences.Editor editor = sharedPreferences.edit(); 

       editor.putString("MyDataList", String.valueOf(dataList.size())); 
       editor.apply(); 
      } 
    } 

そして、私はonCreateViewHolder()内部の別のアダプタで共有プリファレンス値を取得しています:共有preferncesための最初のアダプタのコードは、このようなものです。ここでは、コードは次のようになります。

@Override 
    public SingleItemRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
     SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(viewGroup.getContext()); 
     String value = pref.getString("MyDataList", null); 

     View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_single_card, null); 
     SingleItemRowHolder mh = new SingleItemRowHolder(v); 
     return mh; 
    } 

、私はそれを数回デバッグと私はここでは第二のアダプター、String value = pref.getString("MyDataList", null)で受け付けておりますときに私はnullを取得していますことを見出しました。

ここで何か問題がありますか?また、誰かが、これがRecyclerView Adapterの共有設定値を受け取るための書き込みメソッドかどうかを教えてください。

助けていただければ幸いです。

ありがとうございます。

onCreateViewHolderにおける第二アダプタで

答えて

1

()、共有県は間違っている、 では、次のアンドロイドのドキュメントを読むことによって、これについての詳細を学ぶことができます

SharedPreferences pref = viewGroup.getContext().getSharedPreferences("DataList", Context.MODE_PRIVATE); 

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(viewGroup.getContext()); 

を置き換えます https://developer.android.com/training/basics/data-storage/shared-preferences.html#GetSharedPreferences

関連する問題