在SharedPreference中搜索键和值?

时间:2013-02-25 20:52:21

标签: android

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

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();
}

3 个答案:

答案 0 :(得分:3)

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

但是,这不是SharedPreference的目的。做一些你想做的事情可能有更好的方法。我在任何工作中的座右铭是“不要用螺丝刀钉钉子。”#34;

答案 1 :(得分:0)

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

您可以做的是直接访问SharedPreference文件并找到它。

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

答案 2 :(得分:0)

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

    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()); 
}