如何使用数据绑定从xml调用Edittext-onEditorAction



类似以下代码

<data>
<variable
name="listener"
type="android.view.View.OnClickListener" />
</data>

<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android: text="@ {user.firstName}"
android:onClick="@{listener::onClick}"/>

我想从XML调用editorAction,可以通过XML执行它吗?。

1.创建接口

interface CustomOnEditorActionListener {
fun onEditorAction()
}

2.绑定适配器

@BindingAdapter("app:customOnEditorActionListener")
fun setCustomOnEditorActionListener(view: TextView, listener: CustomOnEditorActionListener?) {
if (listener == null) {
view.setOnEditorActionListener(null)
} else {
view.setOnEditorActionListener(object : TextView.OnEditorActionListener {
override fun onEditorAction(v: TextView?, actionId: Int, event: KeyEvent?): Boolean {
listener.onEditorAction()
return false
}
})
}
}

3.在XML中。viewModel实现的接口CustomOnEditorActionListener

...
<variable
name="viewModel"
type="nl.login.LoginViewModel" />
...
<EditText
android:id="@+id/password_edit"
app:customOnEditorActionListener="@{viewModel}"
...

最新更新