Android ListPreference 返回错误值

标签 android android-layout sharedpreferences android-resources listpreference

当我尝试在 SharedPreferences 中读取“sync_frequency”的默认值时,它返回 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"));
}

返回 30;

最佳答案

问题是应用程序首选项缓存不会通过安装新版本的应用程序来自行重置。我不得不手动卸载该应用程序。

关于Android ListPreference 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38545141/

相关文章:

可绘制图层列表中的 Android 文本

android - 保留 AlertDialog 选中的选项

android - Uri.toString() 返回一个引用而不是字符串

android - 将重要的 key 保存在 gradle 上是否安全?

android - 如何允许用户使用 loadConnectedPlayers

android - "Error in retrofit api call"完成 observable 而不是让其他 observable 发出项目

android - 无法在 Android 中使用 SharedPreferences 增加计数器

android - 让测试知道它可以在应用程序到达特定点后运行 - 可能是 sharedPref

android - 如何强制 React Native 应用程序只是 RTL?

android - 如何在android中的RecyclerView中填充数据?