2013-03-26 48 views
15

我已經preference.xml這樣如何在MultiSelectListPreference中設置多個默認值?

<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> 

我想要的默認行爲是所有的選擇的選項,但目前沒有被默認選中。難道我做錯了什麼?

回答

5

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

此方法將讀取您的preference.xml文件並設置在那裏定義的默認值。將readAgain參數設置爲false意味着如果過去從未調用過此方法,則這將僅設置默認值,因此您不必擔心每次創建Activity時都會覆蓋用戶的設置。

2

我知道我遲到了,但可能是我的回答可以幫助在未來別人......

設置

android:defaultValue="@array/empty_array" 

其中empty_array是一個空數組。

13

要使所有MultiSelectListPreference項目在默認情況下處於選中狀態(打開),請爲首選項包括屬性defaultsValue

android:defaultValue="@array/stores" 

如果它不工作,然後確保你clear應用程序數據,因爲這隻會影響首次運行應用程序。

+0

這對我有效。 – X09 2016-08-03 12:52:02