仅从共享首选项中获取具有模式的项目

时间:2014-10-08 15:28:30

标签: android

我的应用中的共享偏好中有值。我有像

这样的项目
itemH1
item1
itemH2
item2
itemH3
item3

我如何才能获得itemHX等项目?

2 个答案:

答案 0 :(得分:2)

如果匹配您的模式,您必须迭代所有共享首选项并逐个进行比较。

SharedPreferences sharedPref = ctx.getSharedPreferences(AppSettings.PREFERENCES_FILE, Context.MODE_PRIVATE);
        Map<String, ?> allEntries = sharedPref.getAll();
        for (Map.Entry<String, ?> entry : allEntries.entrySet()) {
            if(entry.getKey().contains("itemH"))  //you can use startsWith too
                Log.d("itemH found", entry.getKey() + ": " + entry.getValue().toString());
        }

答案 1 :(得分:0)

如果它们都存储在单个首选项文件中,那么您几乎只能使用SharedPreferences.getAll()并遍历地图条目以查找与您的模式匹配的键。

另一个选项是创建一个不同的首选项文件(使用Context.getSharedPreferences(fileName, Context.MODE_PRIVATE)作为特殊项目(在您的示例中,使用H)。这样您就可以只读取该文件中的所有键,而不是必须检查模式。