如何在Android中动态添加新的Android芯片?

时间:2018-05-23 17:46:24

标签: android kotlin android-chips

我有一个类Question,其中包含一个String数组标签。我将尝试使用Kotlin和新芯片中的每个标签在recyclerview中显示每个问题。这个芯片将包含在chipGroup内。

我的问题是。

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

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

谢谢大家!

2 个答案:

答案 0 :(得分:21)

您可以像其他任何Chip一样添加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"

祝你好运,快乐的编码!

答案 1 :(得分:1)

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

  

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

可以通过以下行代替自定义R.layout.chip来解决此问题: android:textAppearance="@style/TextAppearance.MaterialComponents.Chip"