如何使用Databinding初始化Recycler视图适配器上的单击侦听器?

时间:2017-11-10 11:34:42

标签: android data-binding android-recyclerview android-databinding recyclerview-layout

我将为所有动态布局制作一个通用适配器,通常我处理所有这些事情,但我遇到了如何使用接口初始化单击侦听器,以便我在任何xml中定义并在我的类中获取事件。

我正在关注此链接: https://developer.android.com/topic/libraries/data-binding/index.html

假设这是我的回收站视图的根xml:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="handlers" type="com.example.MyHandlers"/>
<variable name="user" type="com.example.User"/>
</data>

<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstName}"
android:onClick="@{handlers::onClickFriend}"
//>>> i want to initialise interface for position/view instead of @{handlers::onClickFriend}.
  />
</LinearLayout>
</layout>

请给我链接和解决方案,我将感谢你。

1 个答案:

答案 0 :(得分:1)

您可以传递用户/位置。如果你想在clickListener中传递位置,你必须在xml中将它作为变量传递给用户,然后

android:onClick="@{() -> handlers.onClickFriend(user)}

<variable name="position" type="Integer"/>

然后

android:onClick="@{() -> handlers.onClickFriend(position)}