我有一个简单的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);
任何帮助表示赞赏!
保
答案 0 :(得分:2)
也许您在第一次运行应用程序时刚刚设置了错误的值(没有值数组中的相应项)。现在Android会记住你的第一选择。尝试手动卸载应用(菜单&gt;&gt;设置&gt;&gt;应用&gt;&gt;管理应用&gt;&gt;&gt;&gt;卸载)。这应该有所帮助。