web-dev-qa-db-ja.com

Androidに新しいAndroidチップを動的に追加するにはどうすればよいですか?

タグの文字列配列を含むクラスQuestionがあります。 Kotlinと新しいチップのすべてのタグを使用して、recyclerviewですべての質問を表示しようとします。このチップは、chipGroup内に含まれます。

私の質問は。

配列のすべてのタグ要素を新しいチップに追加するにはどうすればよいですか?私はこれをしようとしていますが、明らかに機能していません。

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

全てに感謝!

12
ramon guardia

Chipsは、次のように他の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"

幸運とハッピーコーディング!

31
kandroidj

新しいチップを作成しようとすると、常に次のエラーが発生しました。

IllegalArgumentException:このコンポーネントでは、有効なAndroid:textAppearance属性を指定する必要があります

この問題は、代わりにカスタムR.layout.chip次の行:Android:textAppearance="@style/TextAppearance.MaterialComponents.Chip"

1