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における第二アダプタで