gpt4 book ai didi

android - sharedpreferences 中的 editor.remove() 不删除 key

转载 作者:行者123 更新时间:2023-11-30 00:05:27 24 4
gpt4 key购买 nike

我遇到了一种对我来说没有任何意义的奇怪行为。

我已经设法在 Java 类的 sharedpreferences 中保存了一个温度值,这不是一个 Activity ,方法是这样做:

方法 getContextOfApplication() 是我在我的 Java.Class 中使用的方法,我将温度值放入字符串中并将其作为“温度”存储在 sharedpreferences 中。

此方法在我的 MainActivity 中声明如下:

public static Context contextOfApplication;


public static Context getContextOfApplication() {
return contextOfApplication;
}

这个方法 getContextOfApplication();用于所有与共享首选项的关联,在 Mainactivity 和我的 Java.Class 中

        tempParsed = Jobject.get(("temp")) + "";

SharedPreferences tempSettings = getSharedPreferences(getContextOfApplication());
SharedPreferences.Editor tempEdit = tempSettings.edit();
tempEdit.putString("temperature", tempParsed);
tempEdit.apply();

然后我在我的 MainActivity 中收到键“温度”的这个值,如下所示:

     SharedPreferences fetchSettings = 
PreferenceManager.getDefaultSharedPreferences(getContextOfApplication());

String Temp = fetchSettings.getString("temperature", "");

我可以将存储的温度与 String Temp 一起使用。

到目前为止一切顺利。

稍后在我的代码中,我想删除这个字符串,它保存在 sharedpreferences 中,键为“temperature”。

我觉得很简单...

首先我在想删除值/值时调用了这段代码

SharedPreferences fetchSettings = 
PreferenceManager.getDefaultSharedPreferences(getContextOfApplication());

SharedPreferences.Editor editor = fetchSettings.edit();
editor.clear();
editor.apply();

但是这段代码会删除所有存储的信息,所以我显然不希望这样。

这就是我尝试更改此行的原因:

    editor.clear();
editor.apply();

对此:

    editor.remove("temperature")
editor.apply();

但这没有用!!

现在您可能想知道“您确定您的 key 就是这样命名的吗?”

我添加了这段代码来读取存储在默认共享首选项中的所有条目:

 Map<String, ?> allEntries = fetchSettings.getAll();
for (Map.Entry<String, ?> entry : allEntries.entrySet()) {
Log.d("mapvalues ", entry.getKey() + ": " + entry.getValue().toString());
}

并且日志显示“temperature:”作为键....

为什么editor.clear();有效但 editor.remove("key") 无效?

最佳答案

根据docs您需要调用 commit 才能发生更改:

editor.remove("temperature").commit();

关于android - sharedpreferences 中的 editor.remove() 不删除 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49112687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com