【问题标题】:Cant set string default value for ListPreference android preferencescreen无法为 ListPreference android preferencescreen 设置字符串默认值
【发布时间】:2019-10-17 13:38:40
【问题描述】:

我在 SO 上看到了其他类似的未回答问题。我找不到解决方案。 从其他答案中,我在 xml 上使用了“defaultValue”,但这并没有设置 ListPrefrenece 的默认值。所以 listPreference 在安装时会说“未设置”而不是默认值。 这是 ListPreference:

<ListPreference
        android:widgetLayout="@layout/arr_dn"
        app:defaultValue="reply"
        app:entries="@array/Sweets_entries"
        app:entryValues="@array/Sweets_values"
        app:key="Sweets"
        app:title="Sweets"
        android:defaultValue="@string/defaultSweets"
        app:useSimpleSummaryProvider="true" />

字符串值:

<string name="defaultSweets">NormalSweets</string>


<string-array name="Sweets_values">
        <item>Very Sweet</item>
        <item>NormalSweets</item>
        <item>Less Sweet</item>
    </string-array>

我使用了 PreferenceFragmentCompat 活动,但它无法识别“onSetInitialValue”方法。我不知道在哪里实现该方法。我只想设置一个值,以便在安装时不会说“未设置”。

如何将字符串值设置为此 ListPreference 的默认值?

【问题讨论】:

    标签: java android


    【解决方案1】:

    使用下面的代码,我可以通过将 PreferenceFragmentCompat 扩展到片段来为 ListPreference 设置默认值。

    <ListPreference
        android:defaultValue="@string/pref_units_metric"
        android:entries="@array/pref_units_options"
        android:entryValues="@array/pref_units_values"
        android:key="@string/pref_units_key"
        android:title="@string/pref_units_label" />
    

    字符串值:

    <string name="pref_units_metric">metric</string>
    
    <string-array name="pref_units_options">
        <item>@string/pref_units_label_metric</item>
        <item>@string/pref_units_label_imperial</item>
    </string-array>
    
    <string-array name="pref_units_values">
        <item>@string/pref_units_metric</item>
        <item>@string/pref_units_imperial</item>
    </string-array>
    

    我注意到您在 xml 文件中设置了两个 defaultValue 属性。只需尝试删除 app: 包并仅保留 android: 那些。希望对你有帮助!!!

    【讨论】:

      猜你喜欢
      • 2011-07-09
      • 2012-03-17
      • 2022-11-05
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 2011-04-09
      • 1970-01-01
      相关资源
      最近更新 更多