I have preference.xml like this
<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"
/>
with my two arrays:
<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>
I want the default behaviour to be all of the options selected, but currently nothing is selected by default. Am I doing something wrong?
If you are adding
MultiSelectListPreference
programmatically then you can simply callmultiSelectListPreference.setDefaultValue()
:e.g.
I think you forgot calling
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
in theonCreate()
method of yourmainActivity
.This method will read your
preference.xml
file and set the default values defined there. Setting thereadAgain
argument tofalse
means this will only set the default values if this method has never been called in the past so you don't need to worry about overriding the user's settings each time your Activity is created.To make all
MultiSelectListPreference
items selected (on) by default, then include the attributedefaultsValue
for the Preference, e.g.If it's not working, then make sure that you
clear
the application data as this will only take effect the first time the application is run.I know I am late but may be my answer helps someone else in future...
set
where
empty_array
is an empty array.