这可能是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不喜欢我在布尔文本中使用R.string.Chri textData = prefs.getBoolean(R.string.Chri,false);
它声明:“SharedPreferences中的getBoolean(java.lang.String,Boolean)不能应用于(int,Boolean)”
在我的strings.xml中,我有值:
<string name="Chri">Christmas</string>
当我只是将行更改为
时 Boolean textData = prefs.getBoolean("Christmas", false);
工作正常
如何以不同的方式处理strings.xml中的字符串?
谢谢!
答案 0 :(得分:3)
Android Studio不喜欢我在布尔文本中使用R.string.Chri textData = prefs.getBoolean(R.string.Chri,false);
正确。 R.string.Chri
是int
。要获取字符串,请在某些getString(R.string.Chri)
上调用Context
,例如您的活动。
答案 1 :(得分:2)
您应该使用:
prefs.getBoolean(this.getResources().getString(R.string.Chri), false);
答案 2 :(得分:2)
R.string.Chri
是一个int。而是使用getResources().getString(R.string.Chri)
来检索字符串。