我在一个活动中使用 SharedPreferences 基本上将一堆数据存储在类似 HashMap 的方法中。特别是应用程序名称(字符串)及其各自作为类别 1、2 或 3 应用程序的排序。像这样的东西:
editor.putString("割绳子", "Category 1");
在另一个活动中,我想使用此 SharedPreference 来创建仅包含 1 类应用程序的 ArrayList。以下是我认为可以做到的方式:
ArrayList<String> cat1Apps = new ArrayList<String>();
SharedPreferences stored = getSharedPreferences("Sorted Apps", 0);
SharedPreferences.Editor editor = stored.edit();
Map<String, ?> mappedPreferences = stored.getAll();
for(Map.Entry<String, ?> entry: mappedPreferences.entrySet()){
if(entry.getValue().toString().equals("Category 1")){
cat1Apps.add(entry.getKey());
}
}
但由于某种原因,这不起作用。我正在使用这些应用程序名称,然后有一些代码可以创建类别 1 应用程序的 GridView 显示。如果我只是定义 cat1Apps.add() 一段时间,这很好,但如果我尝试通过上面的 SharedPreferences 导入,它不会创建 GridView。