Привязка данных для программно сгенерированных представлений в kotlin Android - PullRequest
1 голос
/ 07 ноября 2019

У меня есть адаптер привязки, который добавляет представления программно в зависимости от данных, которые вернулись из БД.

@BindingAdapter("addViews")
fun addViews(view: LinearLayout, fruit: List<Fruits>){
    fruit.forEach{
        val v = View.inflate(view.context, R.layout.item_fruit_layout, null)
        v.text_view_fruit_name.text = it.name
        view.addView(v)
    }
}

Я пытаюсь не использовать setText для просмотра текста, так как я использую привязку данных, но я не знаю, как связать данные, используя DataBindingUtil.setContentView или что-то еще. Может ли кто-нибудь сказать мне, могу ли я сделать это?

Спасибо

Ответы [ 2 ]

1 голос
/ 08 ноября 2019

Это мое решение:

val v = View.inflate(view.context, R.layout.item_fruit_layout, null)
val binding = ItemFruitLayoutBinding.bind(v)
binding.setVariable(BR.fruit, it)
1 голос
/ 07 ноября 2019

попробуй вот так

binding = DataBindingUtil.inflate(inflater, R.layout.item_fruit_layout, container, false)
...