gpt4 book ai didi

java - android - 如何在两个不同的 RecyclerView 适配器之间使用共享首选项

转载 作者:行者123 更新时间:2023-11-30 00:22:12 25 4
gpt4 key购买 nike

我有两个 RecyclerView 适配器。而且,我在这两个适配器中使用了 SharedPreferences。

在第一个适配器中,我正在保存 araayList 大小的字符串值,如 String.valueOf(dataList.size())。共享首选项的第一个适配器中的代码如下:

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() 中的另一个适配器中获取共享的 Preference 值。这是代码:

@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 中接收共享偏好值的正确方法。

最佳答案

在 onCreateViewHolder() 的 2nd Adapter 中,你的 shared pref 是错误的,替换

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

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

您可以通过阅读以下 android 文档了解更多相关信息: https://developer.android.com/training/basics/data-storage/shared-preferences.html#GetSharedPreferences

关于java - android - 如何在两个不同的 RecyclerView 适配器之间使用共享首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46067405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com