我的应用中的共享偏好中有值。我有像
这样的项目itemH1
item1
itemH2
item2
itemH3
item3
我如何才能获得itemHX
等项目?
答案 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)。这样您就可以只读取该文件中的所有键,而不是必须检查模式。