如何在MultiSelectListPreference中设置多个默认值?

我有像这样的preference.xml

<MultiSelectListPreference android:key="store_select" android:title="@string/setting_store_title" android:summary="@string/setting_store_summary" android:dialogTitle="@string/setting_store_dialog_title" android:entries="@array/store_names" android:entryValues="@array/stores" android:defaultValue="@array/stores" /> 

与我的两个数组:

  <string-array name="stores"> <item>1</item> <item>2</item> <item>3</item> <item>4</item> <item>5</item> </string-array> <string-array name="store_names"> <item>foodbasics</item> <item>nofrills</item> <item>metro</item> <item>loblaws</item> <item>sobeys</item> </string-array> 

我希望默认行为是所有select的选项,但目前没有select默认情况下。 难道我做错了什么?

Solutions Collecting From Web of "如何在MultiSelectListPreference中设置多个默认值?"

为了使所有MultiSelectListPreference项目在默认情况下被select(开启),那么包括偏好的属性defaultsValue ,例如

 android:defaultValue="@array/stores" 

如果它不起作用,那么请确保clear应用程序数据,因为这只会在第一次运行应用程序时生效。

我想你忘了调用PreferenceManager.setDefaultValues(this, R.xml.preference, false);mainActivityonCreate()方法中。

这个方法会读取你的preference.xml文件并设置在那里定义的默认值。 将readAgain参数设置为false意味着如果过去从未调用过此方法,则只会设置默认值,因此您不必担心每次创buildActivity时都会覆盖用户的设置。

我知道我迟到,但可能是我的答案在未来帮助别人…

 android:defaultValue="@array/empty_array" 

其中empty_array是一个空数组。