問題1描述
讀取sharePreferences的時候遇到了一個EXCEPTION,具體如下:
問題1解決方法
如上圖所示,在R.java裏找到這個ID對應的資源名,發現原來是我代碼中的數據類型寫錯了,期待的是一個Int,但是我給的是一個String,代碼及修改如下:
int defaultValue = getResources().getInteger(R.string.defaultIntValue); // 使用這個defaultIntValue就是錯的,原因是我在string.xml給它添加的標籤是<string>,雖然值是整型的,但是數據類型錯了
int defaultValue = getResources().getInteger(R.integer.defaultIntValue); // 這裏的integer常量是自己後來在string.xml添加的,使用的標籤是<Integer>
問題2描述
使用Intent轉到另一個activity中,activity裏面帶一個textView用來顯示結果,但實際測試時只要點擊跳轉按鈕程序就掛了,這個resource ID在R.java裏面還找不到,暈@@
問題2解決方法
在Android Monitor中找到“Caused by”的上下文,可以看到離這行最近的我的包所執行的是如下這行代碼:
mResult.setText(valueRetrieved);
int valueRetrieved = sharedPref.getInt(keyToRetrive, defaultValue);
public final void setText(@StringRes int resid) {
setText(getContext().getResources().getText(resid));
}
mResult.setText(Integer.toString(valueRetrieved));
基礎問題,願以後不再犯@@