本文共 948 字,大约阅读时间需要 3 分钟。
Android DataBinding事件处理有两种主要方式:方法引用和Listener绑定。以下是两种方法的详细说明。
方法引用通常涉及定义一个Handler或Presenter类,并在其中定义与Listener方法签名相同的方法。然后在XML布局文件中调用这些方法。
例如,定义一个Handler类:
public class MyHandlers { public void onClick(View view) { // 实现点击事件处理逻辑 }} 在布局文件中使用:
Listener绑定采用Lambda表达式的形式,与方法引用类似,但不受方法签名的限制。这种方式允许在Lambda表达式中自定义参数。
例如,定义一个Presenter类:
public class Presenter { public void onClick(Task task) { // 实现点击事件处理逻辑 }} 在布局文件中使用:
由于Lambda表达式的灵活性,还可以实现以下两种写法:
android:onClick="@{(view) -> presenter.onClick(viewModel)}" public class Presenter { public void onClick(View view, Task task) { // 实现点击事件处理逻辑 }}android:onClick="@{(view) -> presenter.onClick(view, viewModel)}" 对于CheckBox,可以使用onCheckedChanged事件:
当使用三目条件表达式时,可以灵活处理事件处理逻辑。例如:
android:onClick="@{(v) -> v.isVisible() ? doSomething() : void}" 这种方式在事件处理只有一个情况下非常有用,可以通过void来代替未使用的逻辑。
转载地址:http://pbgs.baihongyu.com/