由于我没有找到任何有用的内容,或者在我的问题上回复的内容,我想知道是否可以检查共享首选项密钥是否包含常量字符串。
实施例。
存储在我的共享首页上:
<string name="aaa_key1">Value</string>
<string name="aaa_key2">Value</string>
<string name="aaa_key3">Value</string>
<string name="bbb_key1">Value</string>
<string name="bbb_key2">Value</string>
<string name="bbb_key3">Value</string>
我需要添加支票,以便: 如果prefs包含aaa:做某事, 如果prefs包含bbb:做其他事情。
编辑解释: 我的应用程序上有一些方法可以根据用户操作生成共享优先键+字符串。根据用户执行的操作,所有键都有一个常量,所以如果键包含常量(即aaa_key1或bbb_key1),我需要调用其他一些方法
这可能吗? 提前致谢
答案 0 :(得分:2)
您可能会发现这很有用,可以使用以下方法获取密钥列表。
你可以做的是使用SharedPreferences的getAll()方法和 获取Map中的所有值,然后您可以轻松地迭代。
Map<String,?> keys = prefs.getAll();
for(Map.Entry<String,?> entry : keys.entrySet()){
Log.d("map values",entry.getKey() + ": " +
entry.getValue().toString());
}
有关详情,请查看原始帖子link
答案 1 :(得分:1)
如果您只想要单独的值,则无需全部获取 - 在这种情况下,正确的答案是prefs.contains(String)
if (prefs.contains("aaa")
// aaa
else if (prefs.contains("bbb")
// bbb