1

在下面的代码中,我有一个将新键值添加到文件“联系人”中的方法。我的问题是,是否可以创建一种方法,通过文件“联系人”中所有键的某种循环来搜索特殊值,并查看其中一个值是否等于特殊值?一些帮助!谢谢!

String filename = "contacts";
SharedPreferences someInfo = getSharedPreferences(filename, 0);

public void addSharedPref(String key, String value){

SharedPreferences.Editor editor = someInfo.edit();
editor.putString(key, value);
editor.commit();
}
4

3 回答 3

4

使用 SharePreference.getAll() 返回一个 Map,然后使用 Map 的一种方法来搜索一个特殊的值。

然而,这不是 SharedPreference 的设计目的。可能有更好的方法来做你想做的事情。我在任何工作中的座右铭都是“不要用螺丝刀敲钉子”。

于 2013-02-25T21:14:58.543 回答
2

检索共享首选项中的所有值:

    SharedPreferences sp= context.getSharedPreferences("contacts", Context.MODE_PRIVATE);
    Map<String,?> keys = sp.getAll();
    for(Map.Entry<String,?> entry : keys.entrySet()){
        Log.d("map values",entry.getKey() + ": " + entry.getValue().toString()); 
}
于 2013-02-25T22:28:27.813 回答
0

SharedPreference字典一样,无法使用列表等内置内容访问它。您必须有一个索引器(名称-值-对中的名称)才能访问内容。

您可以做的是直接访问该SharedPreference文件并以这种方式找到它。

我建议只尝试访问SharedPreference您要查找的内容,并在其周围添加错误处理以使用默认值。

于 2013-02-25T20:54:26.090 回答