如何使SharedPreference字符串为null?

时间:2019-10-23 21:05:03

标签: android kotlin sharedpreferences

当我表演时:

sharedPref.putString("id", null)

它出现在我的sharedPrefs文件中,如下所示:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <boolean name="waiting" value="false" />
    <string name="state">initial</string>
    <string name="id"></string>
</map>

当我尝试检索它时:

val id = sharedPref.getString("id", null) ?: return // doesn't return
Log.d(TAG, "id == blank: ${id.isBlank()}") // true

它表示该值为空白而不是null。

因此,如果将sharedPrefs中的字符串设置为null,那么它实际上不是null吗?它将为空白({{1)}。

我想将其设置为null,以便更轻松地检查Kotlin的null安全性-但是我不确定这是否可能?

1 个答案:

答案 0 :(得分:0)

您只需从SharedPreferences中删除条目即可。

SharedPreferences.Editor editor = sharedPrefs.edit();
editor.remove("id");
editor.apply();

现在,您可以使用以下行检查该条目是否存在:

if (sharedPrefs.contains("id")) {
    // entry exists
} else {
    // entry does not exist
}