Android:未从XML设置默认首选项值

时间:2011-02-23 04:21:13

标签: android default-value android-preferences

我有一个简单的Preferences Activity,我通过XML填充,将值定义为数组资源。

在应用程序的主要活动中,我通过以下方式处理此问题:

mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);

在我唯一的首选项XML中,这是一个显示设置,我有以下定义ListPreference的XML:

<ListPreference
        android:title="@string/pref_title_sort"
        android:summary="@string/pref_summary_sort"
        android:key="@string/pref_key_sort"
        android:defaultValue="modified"
        android:entries="@array/sort_order"
        android:entryValues="@array/sort_order_values" />

你可以看到我试图将默认值设置为'modified',这是@ array / sort_order_values中的值:

<string-array name="sort_order_values">
    <item>modified</item>
    <item>created</item>
    <item>name</item>
</string-array>

但是,启动“首选项活动”时,默认情况下不会选择任何项目。

我已尝试将以下行添加到我的Activity中,但它没有更改任何内容(其中pref_main是定义首选项的XML文件):

PreferenceManager.setDefaultValues(this, R.xml.pref_main, false);

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

也许您在第一次运行应用程序时刚刚设置了错误的值(没有值数组中的相应项)。现在Android会记住你的第一选择。尝试手动卸载应用(菜单&gt;&gt;设置&gt;&gt;应用&gt;&gt;管理应用&gt;&gt;&gt;&gt;卸载)。这应该有所帮助。