我在一个活动中使用SharedPreferences来基本上将一堆数据存储在类似HashMap的方法中。特别是,应用程序名称(String)及其各自的排序为1类,2类或3类应用程序。像:
editor.putString(“Cut the Rope”,“Category 1”);
在另一个活动中,我想使用此SharedPreference创建仅属于Category 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。
答案 0 :(得分:0)
此处的问题是,在editor.commit()
添加String
之后从未插入SharedPreferences
,因此永远不会保存它们。否则,此代码检索SharedPreferences
是正确的。
OP要求的一些调试链接
This one isn't necessarily about debugging but has some good information
YouTube video onDebugging - 注意我刚刚浏览了一些内容,但看起来可能会有所帮助
当他们说“右击并单击切换断点”时,你也可以双击边距,你应该看到一个绿点,这意味着那里有一个断点。双击绿点以删除断点。