【发布时间】:2015-04-13 20:23:20
【问题描述】:
在我的设置中,有一个列表偏好。我创建了一个 arrays.xml(参见下面的代码)并将值设置为我的 ListPreference(参见下面的代码)。
Arrays.xml
<string-array name="listArray">
<item>minutes</item>
<item>hours</item>
</string-array>
<string-array name="listValues">
<item>60</item>
<item>3600</item>
</string-array>
</resources>
列表偏好
<ListPreference
android:title="Set time: minute hour"
android:key="listPref"
android:defaultValue="1"
android:entries="@array/listArray"
android:entryValues="@array/listValues" />
我知道我必须使用字符串数组,并且从首选项中检索到的每个值都将是一个字符串。如下所示,我将 String 转换为 Integer。
但是当我这样做时,我得到:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int listPrefs = Integer.valueOf(sharedPref.getString("listPref", "3600"));
【问题讨论】:
-
如果您尝试拨打
getInt()会发生什么?感觉就像SharedPreferences看到一个纯数字String并将其转换为Integer给你。
标签: java android string sharedpreferences android-preferences