android - 在 kotlin Android 中以编程方式生成的 View 的数据绑定(bind)

标签 android kotlin android-databinding

我有一个绑定(bind)适配器,它根据从数据库返回的数据以编程方式添加 View 。

@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)
    }
}

我试图不对 TextView 使用 setText,因为我使用的是数据绑定(bind),但我不知道如何使用 DataBindingUtil.setContentView 或其他任何方法来绑定(bind)数据。谁能告诉我我是否可以做到这一点?

谢谢

最佳答案

这是我的解决方案:

val v = View.inflate(view.context, R.layout.item_fruit_layout, null)
val binding = ItemFruitLayoutBinding.bind(v)
binding.setVariable(BR.fruit, it)

关于android - 在 kotlin Android 中以编程方式生成的 View 的数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58753092/

相关文章:

android - 如何从排行榜中删除或更改玩家的分数?

Kotlin 接口(interface)属性 : Only require public getter without public setter

android - Unresolved reference :ActivityMainBinding

java - Android Architecture Components如何实现对象与ViewModel的双向绑定(bind)

android - 如何使用数据绑定(bind)在 TextView 中连接两个整数?

java - 如何在android中另一个名为 "Activity A"的 Activity 中使用 "Activity B"的switch case中定义的方法?

java - 在android音板中,如何使一种声音在点击另一种声音后停止播放?

Android - 在 LiveData 扩展对象的属性上进行数据绑定(bind)

android - 如何在 Android 中设置背景图像并将该图像适合整个卡片以用于卡片 View ?

lambda - Kotlin 为 lambda 生成内部类