可以在Xml中定义ListPreference,并使用getInt从SharedPreferences中检索值吗?这是我的Xml:
<ListPreference android:key="@string/prefGestureAccuracyKey" android:title="@string/prefGestureAccuracyTitle" android:summary="@string/prefGestureAccuracyDesc" android:entries="@array/prefNumberAccuracyLabels" android:entryValues="@array/prefNumberAccuracyValues" android:dialogTitle="@string/prefGestureAccuracyDialog" android:persistent="true" android:defaultValue="2" android:shouldDisableView="false" />
我想要获得的值如下:int val = sharedPrefs.getInt(key,defaultValue)。
目前我必须使用getString并解析结果。
我的理解是ListPreference只能用于字符串数组。你必须使用getString()并自己转换为整数。请参阅
http://code.google.com/p/android/issues/detail?id=2096的错误报告。它似乎不像Google计划扩展ListPreference来处理除字符串之外的任何东西。
另外:您需要将首选项存储为字符串。否则,您的首选项活动将在启动时崩溃,并尝试读取字符串值。