这可能是 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/