我用SharedPreferences做了个PreferencesActivity,导入一个设置好的结构XML
其中用到一个ListPreference代码是这样的:
<ListPreference android:key="default_timesection_id"
android:title="@string/preference_basic_timesection" android:summary="@string/preference_basic_timesection_summary"
android:entries="@array/TimeSectionText" android:dialogTitle="@string/preference_basic_timesection_dialogtitle"
android:entryValues="@array/TimeSection" 
android:defaultValue="0" />
开始的时候我把数组设成string-array了: <string-array name="TimeSection">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
</string-array>
输出的设置中,这一项也是string<string name = "default_timesection_id" >0</string>
可是我把数组改成integer-array结果输出的也是<string>类型的值
这样我在使用下面的代码的时候就会报错 SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
int timesection_id = settings.getInt("default_timesection_id", 0);
必须改成下面这样 SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
int timesection_id = Integer.parseInt(settings.getString("default_timesection_id", "0"));
我的问题是:
ListPreference只能输出String吗?如果要输出Int应该怎么办?我的这种解决办法太蛋疼了