我在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的默认值?
答案 0 :(得分:0)
使用以下代码,我可以通过将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:一个即可。希望对您有帮助!