android - 如何通过数据绑定将 onClick 代码从 XML 传输到 Kotlin 以进行 recyclerview
问题描述
下面的代码是 recyclerview 项目的 XML。
如何将android:onClick="@{() -> sumListener.onClick(sum)}"(最后一行)从 XML 传输到 kotlin?
我想做一个onLongClick,但是XML 没有onLongClick。
如果需要更多信息,请告诉我。
<data>
<variable
name="sum"
type="com.cementcaibird.astock.database.Sum" />
<variable
name="sumListener"
type="com.cementcaibird.astock.main.SumListener" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ll_item_container"
android:onClick="@{() -> sumListener.onClick(sum)}">
...(other view code)
解决方案
可以用这个方法实现
<data>
<variable
name="sum"
type="com.cementcaibird.astock.database.Sum" />
<variable
name="sumListener"
type="com.cementcaibird.astock.main.SumListener" />
</data>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ll_item_container">
...(other view code)
在您的活动/片段中
private lateinit var binding: YourBindingclass
..
binding.linearLayout.setOnClickListener { view->
// Handle your click here
}
binding.linearLayout.setOnLongClickListener{ view->
// Handle your long click here
true
}
推荐阅读
- java - 通过消除 * * 数组中的重复值返回新数组的方法
- cassandra - 为什么不同的 blob 大小会产生不同的性能?
- python - 如何根据与前一行的差异对行进行分组?
- java - 读一个java程序
- python - 如何修复烧瓶中的 sqlalchemy.exc.NoForeignKeysError?
- r - 如何同时使用 mutate_at 或 mutate_if 对数据进行多项操作
- laravel - 尝试使用两个循环时未定义的变量
- postgresql - 选择不返回值 Postgres-11.4
- jquery - 在 jQuery 中使用 find().slice() 时如何解决 attr("class") 的奇怪行为
- c++ - C++ 从模板中获取函数名