gpt4 book ai didi

android 添加 MultiSelectListPreference

转载 作者:行者123 更新时间:2023-11-29 18:31:32 24 4
gpt4 key购买 nike

我正在尝试为我的设置屏幕实现 android jetpack 首选项。一切正常,当我点击 MultiSelectListPreference 时,它​​显示了条目列表,但我有几个问题,

  1. 为什么 entryValues 不能是整数数组? (字符串数组工作正常)
  2. 如何设置默认值?例如:我想将第二个和第三个条目设置为在开始时默认检查。

这是我的 pref.xml 文件的一部分

...
app:entries="@array/res_entries"
app:entryValues="@array/res_id_values"
app:defaultValue="@array/res_def_values" //this line is not working
...

如果我将 arrays.xml 文件中的 res_id_values 设置为 integer-array,则应用程序会崩溃。

我的 settingsFragment 类扩展了 PreferenceFragmentCompat 并覆盖了 onCreatePreferences,我在其中编写了

setPreferencesFromResource(R.xml.pref.xml, rootkey)

编辑

我的 res_entries 数组:

<string-array name="res_entries">
<item>apple</item>
<item>Mango</item>
<item>Guava</item>
</string-array>

我的 res_id_values 数组:

<string-array name="res_id_values">
<item>1</item>
<item>2</item>
<item>12</item>
</string-array>

我的 res_def_values 数组:

<string-array name="res_def_values">
<item>true</item>
<item>false</item>
<item>true</item>
</string-array>

最佳答案

最后,我解决了它。感谢@CommonsWare。

我的第一个问题的答案是,我们不能使用整数数组。使用字符串数组并在其中存储整数值。稍后当你得到它时,使用 Integer.parseInt()。

现在来到第二个问题,要存储默认值(假设您希望默认检查第二项和第三项),请在 res_def_values 中使用 res_id_values。 不要像我一样使用 true/false 或 0/1

例如:如果在上面的问题中,如果我希望默认选中 apple 和 guava,那么我的 res_def_values 将如下所示:

<string-array name="res_def_values">
<item>1</item>
<item>12</item>
</string-array>

关于android 添加 MultiSelectListPreference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55994810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com