追风赶月莫停留,平芜尽处是春山。这篇文章主要讲述Android开发教程 - 使用Data Binding使用自定义Interface相关的知识,希望能为你提供帮助。
为什么要使用自定义Interface
- 我们平常在android的开发中,比如如果要设置一个View的点击事件,通常通过view.setOnClickListener()来实现的,这种方式略显繁琐,而且要通过findViewById()来获取到此View的引用。使用了Data Binding技术以后,我们无需这样做,可以直接通过在xml布局文件中设置一个Interface的实现来直接调用某个方法,非常方便。
- 除了上面说的方便之外,当两个Fragment之间需要通信时,Android是强烈不建议两个Fragment之间直接通信的,它们之间的通信只能通过他们所在的Activity来进行中转。使用Data Binding之后,这种情况处理起来就简单了很多,通过将一个Interface的实现设置到两个Fragment的xml布局文件中就可以实现。
使用自定义接口
- 首先定义一个接口
public interface IMainActivity { void clickedSomething(); }
- 实现这个接口
public class MainActivity extends AppCompatActivity implements IMainActivity{ @Override public void clickedSomething() {} }
- 在布局文件的<
data/>
标签中定义该接口的变量
< variable name="iMainActivity" type="cn.examplecode.androiddatabinding.IMainActivity"/>
- 通过binding设置这个变量
mBinding.setIMainActivity(this);
如果发现并没有这个方法,可能因为IDE并没有自动生成这个方法,可以参考[这篇文章]()进行解决。
- 布局中调用接口的方法
< TextView android:id="@+id/tv_example" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="@{()-> iMainActivity.clickedSomething()}" android:textSize="16sp" />
【Android开发教程 - 使用Data Binding使用自定义Interface】注意:android:onClick()中的写法是一种lambda式的写法
推荐阅读
- Android开发教程 - 使用Data Binding使用BindingAdapter简化图
- Android国际化-图片国际化和文本字符国际化
- 使用H5搭建webapp主页面
- android jni控制gpio (rk3288)
- [译]Android view 测量布局和绘制的流程
- eclipse java项目转idea java项目Invalid bound statement (not found): com.mapper 报错问题
- vsphere6.0故障(关于vCenter Appliance6.0磁盘爆满和WEB503错误问题)
- Django --- Django下载和APP创建ORM (大概步骤)
- react-native app集成阿里云推送