我是新來的使用共享偏好,並在我第一次嘗試即時獲得對我沒有意義的錯誤。我給這樣一個值:字符串不能被轉換爲整數
int saveScore = sp.getInt("SAVE_SPOT",0); //This is intentional to get the
//default value of 0 to go to case 0
switch(saveScore){
case 0:
SharedPreferences.Editor edit1 = sp.edit();
edit1.putInt("SCORE_1", score);
edit1.putInt("SAVE_SPOT", 1);
edit1.commit();
break;
case 1:
int previous_score = sp.getInt("SCORE_1",0); // error happens here
if(sp.getInt("SCORE_1",0)>score){
SharedPreferences.Editor edit2 = sp.edit();
edit2.putInt("SCORE_2", score);
edit2.putInt("SAVE_SPOT", 2);
edit2.commit();
}
else{
SharedPreferences.Editor edit3 = sp.edit();
edit3.putInt("SCORE_2", previous_score);
edit3.putInt("SCORE_1", score);
edit3.putInt("SAVE_SPOT", 1);
edit3.commit();
}
break;
每當我運行程序時,我得到的錯誤「字符串不能被轉換爲整數」。我幾乎99%肯定變量分數是一個整數,而不是一個字符串,但我不知道爲什麼我得到這個錯誤。
唯一的例外是在putInt正確拋出的唯一途徑?你在哪裏分配分數? – eski
異常在getInt行上。 score是一個變量,當按下按鈕時被更新,然後在點擊監聽器之外是共享首選項代碼的位置 – ez4nick
查看我的解決方案。我希望它幫助 –