【问题标题】:How to set multiple default values in a MultiSelectListPreference?如何在 MultiSelectListPreference 中设置多个默认值?
【发布时间】:2013-03-15 17:54:14
【问题描述】:

我有这样的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>

我希望默认行为是选择的所有选项,但目前默认情况下没有选择任何选项。我做错了吗?

【问题讨论】:

    标签: android sharedpreferences preferences


    【解决方案1】:

    我想你忘了打电话给PreferenceManager.setDefaultValues(this, R.xml.preference, false);mainActivityonCreate() 方法中。

    此方法将读取您的preference.xml 文件并设置其中定义的默认值。将readAgain 参数设置为false 意味着这只会在过去从未调用过此方法的情况下设置默认值,因此您无需担心每次创建活动时都会覆盖用户的设置。

    【讨论】:

      【解决方案2】:

      我知道我迟到了,但我的回答可能会在未来帮助其他人......

      设置

      android:defaultValue="@array/empty_array"
      

      其中empty_array 是一个空数组。

      【讨论】:

        【解决方案3】:

        要使所有MultiSelectListPreference 项目默认选中(打开),然后在首选项中包含defaultsValue 属性,例如

        android:defaultValue="@array/stores"
        

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

        【讨论】:

          【解决方案4】:

          如果您以编程方式添加MultiSelectListPreference,则只需调用multiSelectListPreference.setDefaultValue()

          例如

          val preference = MultiSelectListPreference(context)
          preference.setDefaultValue(setOf("US, "CN"))
          

          【讨论】:

            猜你喜欢
            • 2019-05-17
            • 1970-01-01
            • 2012-09-10
            • 2010-11-14
            • 2021-09-22
            • 2020-01-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多