Android开发教程 - 使用Data Binding(八)使用自定义Interface

为什么要使用自定义Interface

  • 我们平常在Android的开发中,比如如果要设置一个View的点击事件,通常通过view.setOnClickListener()来实现的,这种方式略显繁琐,而且要通过findViewById()来获取到此View的引用。使用了Data Binding技术以后,我们无需这样做,可以直接通过在xml布局文件中设置一个Interface的实现来直接调用某个方法,非常方便。

  • 除了上面说的方便之外,当两个Fragment之间需要通信时,Android是强烈不建议两个Fragment之间直接通信的,它们之间的通信只能通过他们所在的Activity来进行中转。使用Data Binding之后,这种情况处理起来就简单了很多,通过将一个Interface的实现设置到两个Fragment的xml布局文件中就可以实现。

下面我们来举例说明这种方式的用法。

使用自定义接口

  1. 首先定义一个接口

    public interface IMainActivity {
        void clickedSomething();
    }
  2. 实现这个接口
    public class MainActivity extends AppCompatActivity implements IMainActivity{
        @Override
        public void clickedSomething() {
    
        }
    }
  3. 在布局文件的<data/>标签中定义该接口的变量
    <variable
        name="iMainActivity"
        type="cn.examplecode.androiddatabinding.IMainActivity"/>
  4. 通过binding设置这个变量
    mBinding.setIMainActivity(this);

    如果发现并没有这个方法,可能因为IDE并没有自动生成这个方法,可以参考[这篇文章]()进行解决。

  5. 布局中调用接口的方法
    <TextView
    android:id="@+id/tv_example"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="@{()->iMainActivity.clickedSomething()}"
    android:textSize="16sp" />

    注意:android:onClick()中的写法是一种lambda式的写法

总结

通过简单的几步就可以在布局中直接调用Activity(或任意对象)中的方法了,本文以简单的点击事件及简单的事件进行用法的举例,大家可以根据自己的业务应用到更多的场景中。

原文地址:http://blog.51cto.com/11761032/2173752

时间: 2024-08-01 17:15:47

Android开发教程 - 使用Data Binding(八)使用自定义Interface的相关文章

Android开发教程 - 使用Data Binding(一) 介绍

引言 Data Binding(数据绑定)发布于2015年的Google I/O大会,旨在减少Android开发中的大量模板代码(比如findViewById()),增加代码及逻辑清晰度,提高开发效率和维护效率. 什么是Data Binding Data Binding,即数据绑定,是Android团队实现MVVM架构的一种方法,使得数据(对象)可以直接绑定到布局的xml中,数据的变化直接反映到View上. 同时,Data Binding也支持双向绑定. 有什么好处 省去大量模板代码,比如fin

Android开发教程 - 使用Data Binding(二)集成与配置

安装依赖库,配置工程 Data Binding安装和配置都非常简单,仅需简单的两步即可完成. 更新SDK 打开SDK管理工具,下载最新的Android Support库. 配置工程的Gradle android { - dataBinding { enabled = true } } 加入完成后,然后点击Sync Now,完成后就可以使用Data Binding强大的功能了. 总结 这一篇我们介绍了Data Binding的配置,下一篇我们将介绍在Activity中使用Data Binding的

Android开发教程 - 使用Data Binding(三)在Activity中的使用

修改activity布局 如果使Activity支持Data Binding,在布局的最外层加入"<layout>"标签即可,由于是加在最外层,所以即使重构现有工程,所做的修改也非常简单,并不会影响现有的布局结构. 以下以MainActivity进行举例. 修改前activty_main.xml的布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmln

Android开发教程 - 使用Data Binding(四)在Fragment中的使用

修改fragment的布局 同上一篇:在Activity中的使用中一样,在Fragment中使用Data Binding同样需要修改布局,修改方式也跟Activity一样,在最外层加上<layout>标签: <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"

Android开发教程 - 使用Data Binding Android Studio不能正常生成相

有时候新建布局文件时或者定义布局中的变量时,不能即时生成相关Binding类或方法(其实是不能正确索引),也许是IDE支持的一些BUG,不过Android Studio对Data Binding的支持问题也仅限于这些,并且可以比较简单地解决这些问题. 方法一(经常不起作用): 菜单 -> Build -> Clean Project -> Rebuild Project 方法二(推荐): 关闭Android Studio,重新打开. 此时工程会重新索引,大部分情况会正常. 方法三: 菜单

Android开发教程 - 使用Data Binding(七)使用BindingAdapter简化图

什么是BindingAdapter BindingAdapter用来设置布局中View的自定义属性,当使用该属性时,可以自定义其行为. 下面是一个简单的例子: @BindingAdapter("android:bufferType") public static void setBufferType(TextView view, TextView.BufferType bufferType) { view.setText(view.getText(), bufferType); } 当

[Android 开发教程(1)]-- Saving Data in SQL Databases

Saving data to a database is ideal for repeating or structured data, such as contact information. This class assumes that you are familiar with SQL databases in general and helps you get started with SQLite databases on Android. The APIs you'll need

ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置

原文地址: ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/arcgis_mobile/article/details/8113948   2.开发环境配置 2.1 系统要求 1)      支持的操作系统 A.      Windows XP(32位).Vista(32/64位).Windows 7(32/64位) B.      Mac

ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map

原文地址: ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/arcgis_mobile/article/details/8124005 通过上面章节,我们已经了解如何配置一个ArcGIS Runtime for Android开发环境,下面我们将介绍如何使用Eclipse创建一个ArcGIS移动项目Hello W