来自共享首选项的android数组
Posted
技术标签:
【中文标题】来自共享首选项的android数组【英文标题】:android array from shared preferences 【发布时间】:2011-08-07 07:26:42 【问题描述】:我正在尝试迭代一组共享首选项,并生成一个 HashMap 的 ArrayList,但遇到了问题。
SharedPreferences 设置 = getSharedPreferences(pref, 0); SharedPreferences.Editor 编辑器 = settings.edit(); editor.putString("key1", "value1"); editor.putString("key2", "value2");然后我在想一些事情:
final ArrayList这会产生以下错误:
HashMap类型中的 put(String, String) 方法不适用于参数 (String, capture#5-of ?)
有没有更好的方法来做到这一点?
【问题讨论】:
无论API级别如何,检查sherifandroid.blogspot.com/2012/05/… 【参考方案1】:Hache 的想法是正确的。对象不是字符串,所以 .toString() 是必要的。
final ArrayList【讨论】:
我是新手,所以我不是在质疑你的答案,而是在问一个问题:) 使用 Pair 怎么样? developer.android.com/reference/android/util/Pair.html @Bill Mote - 你的意思是代替 HashMaps?我想这会起作用,但问题更多的是如何遍历一组偏好,而不是如何操作结果数据。我的最终目标是拥有一个字符串,因此虽然 Pair 会持有该对象,但我仍然需要从中获取一对字符串。【参考方案2】:改变
HashMap<String,String> temp = new HashMap<String,String>();
final ArrayList<HashMap<String,String>> LIST = new ArrayList<HashMap<String,String>>();
到
HashMap<String,?> temp = new HashMap<String,?>();
final ArrayList<HashMap<String,?>> LIST = new ArrayList<HashMap<String,?>>();
它应该可以工作。你不是在放一个字符串而是一个对象,这会导致错误
【讨论】:
无法实例化类型 HashMap以上是关于来自共享首选项的android数组的主要内容,如果未能解决你的问题,请参考以下文章