我的 Android SharedPreferences 是:
核心值(value)
美国约翰
xxxpeter,英国
路易斯,墨西哥
xxxangel,意大利
杜邦,法兰
xxx查尔斯,比利时
...
更多带有 xxxname 的行
...
如何删除键中包含(或以 xxx 开头)的键/值。这是我到目前为止得到的:
public void Deletekeyxxx() {
final SharedPreferences.Editor sped = sharedPreferences.edit();
if(sped.contains("xxx")){
sped.remove(sped.contains("xxx"));
}
sped.commit();
}
作品!谢谢 Ben P.
public void Deletekeyxxx() {
final SharedPreferences.Editor sharedPrefsEditor = sharedPreferences.edit();
Map<String, ?> allEntries = sharedPreferences.getAll();
for (Map.Entry<String, ?> entry : allEntries.entrySet()) {
String key = entry.getKey();
if (key.contains("xxx")) {
sharedPrefsEditor.remove(key);
}
sharedPrefsEditor.commit();
}
}
最佳答案
您可以使用 SharedPreferences.getAll()
检索 Map<String,?>
,然后使用 Map.keySet()
遍历键。也许是这样的:
private void removeBadKeys() {
SharedPreferences preferences = getSharedPreferences("Mypref", 0);
SharedPreferences.Editor editor = preferences.edit();
for (String key : preferences.getAll().keySet()) {
if (key.startsWith("xxx")) {
editor.remove(key);
}
}
editor.commit();
}
关于android - 如何从 SharedPreferences 中删除一些包含字符串的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45620473/