gpt4 book ai didi

android - 如何在共享首选项中存储数组列表并在另一个 fragment 中访问

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

我想将这个数组列表数据保存在 sharedpreferences 中,并在另一个 fragment 中访问该数据。请给我建议

下面给出的数组列表内容

public String productname;
public String productunit;
public String productquantity;
public String productprice;
public String productdiscount;

最佳答案

这是解决方案,第 1 步:创建一个类,例如

SharedPreference

public static final String FAVORITES = "PRODUCTS";
private SharedPreferences settings;
private Editor editor;

public SharedPreference() {
super();
}

现在代码保存ArrayList

 public void saveArrayList(Context context, List<String> unread_ids) {
settings = context.getSharedPreferences(AppConfig.KEY_PREFS_NAME,
Context.MODE_PRIVATE);
editor = settings.edit();
Gson gson = new Gson();
String jsonFavorites = gson.toJson(unread_ids);
editor.putString(FAVORITES, jsonFavorites);
editor.apply();
}

现在编写代码以获取保存的 Arraylist

public ArrayList<String> getSavedList(Context context) {
// SharedPreferences settings;
List<String> unReadId;

settings = context.getSharedPreferences(AppConfig.KEY_PREFS_NAME,
Context.MODE_PRIVATE);

if (settings.contains(FAVORITES)) {
String jsonFavorites = settings.getString(FAVORITES, "");
Gson gson = new Gson();
String[] favoriteItems = gson.fromJson(jsonFavorites,
String[].class);

unReadId = Arrays.asList(favoriteItems);
unReadId = new ArrayList<>(unReadId);

} else {
return new ArrayList<String>();
}

return (ArrayList<String>) unReadId;
}

保存列表的代码:

sharedPreferences.saveArrayList(context, <YOUR LIST NAME>);

现在编写代码以在其他 Fragment 中获取您的 Arraylist

<LIST NAME> = sharedPreference.getSavedList(getActivity());

在获取和保存数组列表之前,您必须声明“sharedPreference”并创建其对象。

希望对您有所帮助。

关于android - 如何在共享首选项中存储数组列表并在另一个 fragment 中访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53594312/

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