Android ListPreference returns 错误值
Android ListPreference returns wrong value
当我尝试在 SharedPreferences 中读取 "sync_frequency" 的默认值时,它 returns 30 但应该是 300000。
我的资源:
<resources>
<string name="pref_title_sync_frequency">Intervall</string>
<string-array name="pref_sync_frequency_titles">
<item>5 min.</item>
<item>10 min.</item>
<item>15 min.</item>
<item>20 min.</item>
<item>30 min.</item>
<item>60 min.</item>
<item>Nimals</item>
</string-array>
<string-array name="pref_sync_frequency_values">
<item>300000</item>
<item>600000</item>
<item>900000</item>
<item>1200000</item>
<item>1800000</item>
<item>3600000</item>
<item>-1</item>
</string-array>
</resources>
我的偏好页面:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<ListPreference
android:defaultValue="300000"
android:entries="@array/pref_sync_frequency_titles"
android:entryValues="@array/pref_sync_frequency_values"
android:key="sync_frequency"
android:negativeButtonText="@null"
android:positiveButtonText="@null"
android:title="@string/pref_title_sync_frequency" />
<SwitchPreference
android:defaultValue="true"
android:dependency="sync_frequency"
android:key="sync_appoint_only_on_wifi"
android:title="@string/pref_title_on_wifi_appo" />
<SwitchPreference
android:defaultValue="true"
android:dependency="sync_frequency"
android:key="sync_feed_only_on_wifi"
android:title="@string/pref_title_on_wifi_feed" />
我尝试获取值的方式:
public int syncIntervall(){
SharedPreferences spr = PreferenceManager.getDefaultSharedPreferences(ctx);
return Integer.valueOf(spr.getString("sync_frequency", "300000"));
}
Returns 30;
问题是应用程序首选项缓存不会通过安装新版本的应用程序自行重置。我不得不手动卸载应用程序。
当我尝试在 SharedPreferences 中读取 "sync_frequency" 的默认值时,它 returns 30 但应该是 300000。
我的资源:
<resources>
<string name="pref_title_sync_frequency">Intervall</string>
<string-array name="pref_sync_frequency_titles">
<item>5 min.</item>
<item>10 min.</item>
<item>15 min.</item>
<item>20 min.</item>
<item>30 min.</item>
<item>60 min.</item>
<item>Nimals</item>
</string-array>
<string-array name="pref_sync_frequency_values">
<item>300000</item>
<item>600000</item>
<item>900000</item>
<item>1200000</item>
<item>1800000</item>
<item>3600000</item>
<item>-1</item>
</string-array>
</resources>
我的偏好页面:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<ListPreference
android:defaultValue="300000"
android:entries="@array/pref_sync_frequency_titles"
android:entryValues="@array/pref_sync_frequency_values"
android:key="sync_frequency"
android:negativeButtonText="@null"
android:positiveButtonText="@null"
android:title="@string/pref_title_sync_frequency" />
<SwitchPreference
android:defaultValue="true"
android:dependency="sync_frequency"
android:key="sync_appoint_only_on_wifi"
android:title="@string/pref_title_on_wifi_appo" />
<SwitchPreference
android:defaultValue="true"
android:dependency="sync_frequency"
android:key="sync_feed_only_on_wifi"
android:title="@string/pref_title_on_wifi_feed" />
我尝试获取值的方式:
public int syncIntervall(){
SharedPreferences spr = PreferenceManager.getDefaultSharedPreferences(ctx);
return Integer.valueOf(spr.getString("sync_frequency", "300000"));
}
Returns 30;
问题是应用程序首选项缓存不会通过安装新版本的应用程序自行重置。我不得不手动卸载应用程序。