gpt4 book ai didi

java - 从共享首选项中以有序方式保存和检索 ArrayList

转载 作者:行者123 更新时间:2023-12-01 17:51:34 25 4
gpt4 key购买 nike

我正在尝试保存在我的应用程序中观看的视频的历史记录,但我无法检索观看视频的顺序,顺序全乱了,这里是我用来保存数组列表的代码

 public void SaveHistory(Context context,String url,boolean save)
{
FetchHistory(context);
if(save)
{
pathList.add(url);
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
LinkedHashSet<String> set = new LinkedHashSet<>(pathList);
sharedPreferences.edit().putStringSet("History",set).apply();

}
else
{
pathList.remove(url);
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
LinkedHashSet<String> set = new LinkedHashSet<>(pathList);
sharedPreferences.edit().putStringSet("History",set).apply();
}

}

这是我用来检索数组列表的代码

 public ArrayList<String> FetchHistory(Context context)
{
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
Set<String> newSet = sharedPreferences.getStringSet("History",null);
if(newSet!=null)
{
pathList.clear();
pathList.addAll(newSet);
Collections.reverse(pathList);
}
return pathList;
}

最佳答案

我认为以下代码是问题所在:sharedPreferences.getStringSet

你可能会得到一个未排序的HashSet。尝试以其他方式存储它。

编辑:一个快速但不是很奇特的解决方案是将项目存储在带有特定分隔符的连接字符串中。

为了获得更好的解决方案,您可能必须使用另一种技术来存储首选项。

关于java - 从共享首选项中以有序方式保存和检索 ArrayList<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60785714/

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