【发布时间】:2023-01-22 10:45:10
【问题描述】:
在我的 preferences.xml 中我有这个:
<ListPreference
app:dependency="@string/auto_record_key"
app:defaultValue="3"
app:dialogTitle="@string/track_step_distance_dialog_title"
app:entries="@array/track_step_distance_entries"
app:entryValues="@array/track_step_distance_values"
app:key="@string/track_step_distance_key"
app:summary="@string/track_step_distance_summary"
app:title="@string/track_step_distance_title" />
使用这些数组:
<item>off (time only)</item>
<item>5</item>
<item>10</item>
<item>15</item>
<item>20</item>
<item>30</item>
<item>50</item>
<item>100</item>
<item>200</item>
<item>300</item>
</string-array>
<string-array name="track_step_distance_values">
<item>0</item>
<item>5</item>
<item>10</item>
<item>15</item>
<item>20</item>
<item>30</item>
<item>50</item>
<item>100</item>
<item>200</item>
<item>300</item>
</string-array>
在我的 onSharedPreferenceChanged 中:
keyString = mContext.getString(R.string.track_step_distance_key );
if ( key == null || key.equals( keyString ) ) {
int trackStepDistance = preferences.getInt( keyString, 3 );
}
每当此 onSharedPreferenceChanged 代码运行时, 它得到这个例外:
java.lang.RuntimeException: Unable to start activity ComponentInfo{dkr.ajijic.apps.tracks/dkr.ajijic.apps.tracks.MySettingsActivity}: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
为什么?
【问题讨论】:
标签: sharedpreferences androidx android-preferences