2015-01-03 90 views
0

這可能是Android 101,但我現在已經習慣了SDK。無論如何,我只是不明白錯誤。我想根據我的共享偏好文件更新一些複選框的選擇,我使用下面的方法:getBoolean不接受字符串鍵與getSharedPreferences

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);

它指出: 「getBoolean(java.lang.String中,布爾)在SharedPreferences不能適用於(INT,布爾值)」

在我的strings.xml我有值:

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

當我簡單地改變行

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

它工作正常

如何是我t strings.xml中的字符串處理方式不同嗎?

謝謝!

回答

3

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

正確。 R.string.Chriint。要得到一個字符串,請在Context上調用getString(R.string.Chri),例如您的活動。

+0

太簡單了!謝謝。 –

2

你應該使用:

prefs.getBoolean(this.getResources().getString(R.string.Chri), false); 
2

R.string.Chri是一個int。請使用getResources().getString(R.string.Chri)來檢索字符串。

相關問題