在下面的代码中,我有一个方法可以将新的键值添加到文件“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();
}
答案 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());
}