亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 SharedPreferences 檢索值時,無法將獲取 java.lang.String

從 SharedPreferences 檢索值時,無法將獲取 java.lang.String

慕標琳琳 2022-06-23 16:31:32
我正在嘗試使用 SharedPreferences 來存儲一些值并在應用程序打開時檢索它們,但是我在檢索一些 int 值時遇到了問題。我嘗試將值轉換為字符串,然后使用 Integer.ParseInt 檢索值,但仍然出現錯誤。這是我的價值應該存儲的地方:void putP1Index(int index) {    SharedPreferences.Editor mEditor = mPrefs.edit();    mEditor.putInt(keyP1Index, index);    mEditor.apply();}void putP2Index(int index) {    SharedPreferences.Editor mEditor = mPrefs.edit();    mEditor.putInt(keyP2Index, index);    mEditor.apply();}它們是從不同的類中保存的:private MainGame mainGame;private SavedValues savedValues;ScoreSetter(MainGame mainGame) {    this.mainGame = mainGame;    savedValues = new SavedValues(mainGame);}void setScore(who) {switch (who) {        case 1:            ++indexP1;            savedValues.putP1Index(indexP1);//Some code...        case 2:            ++indexP2;            savedValues.putP2Index(indexP2);//Some code...}}我嘗試像這樣檢索它:int getP1Index() {    return mPrefs.getInt(keyP1Index, 0);}int getP2Index() {    return mPrefs.getInt(keyP2Index, 0);}通過從不同的類調用它們:void getSavedValues() {    indexP1 = savedValues.getP1Index();    indexP2 = savedValues.getP2Index();}在 getSavedValues 方法上,我收到錯誤java.lang.RuntimeException:無法啟動活動 ComponentInfo{...}:java.lang.ClassCastException:java.lang.String 無法轉換為 java.lang.Integer我不明白的是我將值保存為 int 并嘗試以相同的方式檢索它們。此外,我有一個類似的方法,但使用布爾值,它工作得很好。
查看完整描述

1 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

我設法解決了這個問題。代碼沒有任何問題,但值是在應用程序的早期版本中編寫的。

在清理應用程序數據并在 Android Studio 中使緩存失效并清除緩存后,問題就消失了。


查看完整回答
反對 回復 2022-06-23
  • 1 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號