java - getBoolean 不会接受带有 getSharedPreferences 的字符串键

标签 java android boolean sharedpreferences

这可能是 Android 101,但我现在已经习惯了 SDK。无论如何,我根本不明白这个错误。我想根据我的共享首选项文件更新一些复选框选择,我使用以下方法:

private void updatePreferencesData() {

    SharedPreferences prefs = getSharedPreferences(PREFS_NAME, 0);

    Boolean textData = prefs.getBoolean(R.string.Chri, false);
    CheckBox cb1 = (CheckBox) findViewById(R.id.chkbxChristmas);
    cb1.setChecked(textData);

}

Android Studio 不喜欢我在 Boolean textData = prefs.getBoolean(R.string.Chri, false); 中使用 R.string.Chri;

它指出:“SharedPreferences 中的 getBoolean(java.lang.String, Boolean) 不能应用于 (int, Boolean)”

在我的 strings.xml 中,我有值:

<string name="Chri">Christmas</string>

当我简单地将行更改为

 Boolean textData = prefs.getBoolean("Christmas", false);

效果很好

strings.xml 中的字符串处理方式有何不同?

谢谢!

最佳答案

Android Studio doesn't like my use of R.string.Chri in Boolean textData = prefs.getBoolean(R.string.Chri, false);

正确。 R.string.Chri 是一个int。要获取字符串,请在某些 Context(例如您的 Activity)上调用 getString(R.string.Chri)

关于java - getBoolean 不会接受带有 getSharedPreferences 的字符串键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27759533/

相关文章:

Java 事件绑定(bind)问题绑定(bind)库

Java字符串到不同格式的日期转换

java - 安装错误: INSTALL_FAILED_UID_CHANGED

c# - 如何在 if 语句中正确使用 bool?

java - Maven Surefire 并行测试中跳过测试的非确定性行为

java - 数字日期格式

android - 显示 Facebook 的所有事件

java - CardView 由于任何错误而未显示内容

java - 返回 boolean 值方法

mysql - Ado 实体 : Treat Tiny as Boolean = false