我正在尝试迭代共享首选项的集合,并生成HashMaps的ArrayList,但有问题 .
SharedPreferences settings = getSharedPreferences(pref, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("key1", "value1");
editor.putString("key2", "value2");
然后我在思考以下几点:
final ArrayList<HashMap<String,String>> LIST = new ArrayList<HashMap<String,String>>();
SharedPreferences settings = getSharedPreferences(pref, 0);
Map<String, ?> items = settings.getAll();
for(String s : items.keySet()){
HashMap<String,String> temp = new HashMap<String,String>();
temp.put("key", s);
temp.put("value", items.get(s));
LIST.add(temp);
}
这会出现以下错误:
The method put(String, String) in the type HashMap<String,String> is not applicable for the arguments (String, capture#5-of ?)
有一个更好的方法吗?
2 回答
哈希有正确的想法 . Object不是String,因此.toString()是必需的 .
更改
至
它应该工作 . 你没有放一个String而是一个导致错误的对象