检查sharedpreferences键是否包含常量

时间:2013-12-19 06:06:02

标签: android sharedpreferences

由于我没有找到任何有用的内容,或者在我的问题上回复的内容,我想知道是否可以检查共享首选项密钥是否包含常量字符串。

实施例。

存储在我的共享首页上:

<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),我需要调用其他一些方法

这可能吗? 提前致谢

2 个答案:

答案 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