22

我有一个名为 Question 的类,其中包含一个 String 的标签数组。我正在尝试使用 Kotlin 在 Recyclerview 中显示每个问题以及新芯片中的每个标签。这些芯片将包含在一个芯片组中。

我的问题是:

如何将数组的每个标签元素添加到新芯片中?我正在尝试这样做,但它显然不起作用。

if (tags != null) {
    for (tag in tags) {
        val chip = Chip(itemView.context)
    }
}
4

2 回答 2

45

您可以像添加Chip任何其他方式一样添加 s,ViewGroup如下所示:

for (index in tags.indices) {
  val chip = Chip(chipGroup.context)
  chip.text= "Item ${tags[index]}"

  // necessary to get single selection working
  chip.isClickable = true
  chip.isCheckable = true
  chipGroup.addView(chip)
}

对于 singleSelection 不要忘记添加到您的chipGroup:

chipGroup.isSingleSelection = true

或在 xml

app:singleSelection="true"
于 2018-06-12T18:00:19.050 回答
4

尝试创建新芯片时总是出现以下错误:

IllegalArgumentException:此组件要求您指定有效的 android:textAppearance 属性

这可以通过R.layout.chip使用以下行来扩展自定义来解决: android:textAppearance="@style/TextAppearance.MaterialComponents.Chip"

于 2019-08-03T15:22:12.747 回答