任何時候我嘗試從SharedPreference
開始getInt()
我的應用程序崩潰,但我可以通過偏好作爲地圖進行迭代。例如,請參見下面帶星行:儘管存在值,但無法獲得共享偏好值
private void loadPref(){
myPrefs = PreferenceManager.getDefaultSharedPreferences(this);
int sf = DEFAULT_VALUE;
Map<String,?> keys = myPrefs.getAll();
for(Map.Entry<String,?> entry : keys.entrySet()){
if (entry.getKey().contentEquals("score_format"))
// this works: //*****
sf = Integer.parseInt(entry.getValue().toString()); //*****
}
// but this does not: //*****
// sf = myPrefs.getInt("score_format", DEFAULT_VALUE); //*****
setScoreFormat(sf);
}
很顯然,我的首選項被保存(此採樣並在多項活動中工作的優先選擇屏幕證明)。我在嘗試訪問getDefaultSharedPreferences之前調用super.onCreate()。
我應該考慮瞭解爲什麼此代碼無法正常工作?爲什麼地圖可以工作,但不是「getInt」方法?我確實注意到,如果我試圖明確地轉換鍵值,應用程序也會崩潰......我必須先將它轉換爲String。
我錯過了什麼?
你可以發佈異常的logcat嗎?和'DEFAULT_VALUE'的定義? – Szymon