想要在用户点击时使用共享首选项来存储此自定义列表视图文本
Wanted to store this custom listview text using shared preference on user click
我想在用户单击该星形图像时使用共享首选项存储此自定义列表视图文本(P.S - 我不想为此使用数据库)并且还想检索该文本(所有选定的文本作为 ArrayList)在另一个 activity 中。
现在我可以将此文本作为 ArrayList 存储在我的共享首选项中,但在自定义适配器的 getView() 方法中,我的 ArrayList 一次又一次地重新初始化,任何人都可以帮助我吗
喜欢这个演示示例
用户什么时候会点击这张星图
并在收藏夹中 activity 将从共享首选项中检索 ArrayList
您必须将数组列表作为 json 写入 Sharedpreference
public void saveArrayList(ArrayList<String> list, String key){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
SharedPreferences.Editor editor = prefs.edit();
Gson gson = new Gson();
String json = gson.toJson(list);
editor.putString(key, json);
editor.apply();
}
public ArrayList<String> getArrayList(String key){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
Gson gson = new Gson();
String json = prefs.getString(key, null);
Type type = new TypeToken<ArrayList<String>>() {}.getType();
return gson.fromJson(json, type);
}
我想在用户单击该星形图像时使用共享首选项存储此自定义列表视图文本(P.S - 我不想为此使用数据库)并且还想检索该文本(所有选定的文本作为 ArrayList)在另一个 activity 中。 现在我可以将此文本作为 ArrayList 存储在我的共享首选项中,但在自定义适配器的 getView() 方法中,我的 ArrayList 一次又一次地重新初始化,任何人都可以帮助我吗 喜欢这个演示示例
用户什么时候会点击这张星图
并在收藏夹中 activity 将从共享首选项中检索 ArrayList
您必须将数组列表作为 json 写入 Sharedpreference
public void saveArrayList(ArrayList<String> list, String key){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
SharedPreferences.Editor editor = prefs.edit();
Gson gson = new Gson();
String json = gson.toJson(list);
editor.putString(key, json);
editor.apply();
}
public ArrayList<String> getArrayList(String key){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
Gson gson = new Gson();
String json = prefs.getString(key, null);
Type type = new TypeToken<ArrayList<String>>() {}.getType();
return gson.fromJson(json, type);
}