我有兩個RecyclerView適配器。而且,我在這兩個適配器中使用SharedPreferences。android - 如何使用兩個不同的RecyclerViewAdapters之間的共享首選項
在第一個適配器中,我保存了araayList大小的字符串值,如String.valueOf(dataList.size())
。共享prefernces第一銜接的代碼是這樣的:
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()
。下面是代碼:
@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)
。
我在這裏做錯了什麼?另外,有人可以告訴我們這是否是在RecyclerView Adapter中接收共享首選項值的寫入方法。
幫助將不勝感激。
在此先感謝。