文档章节

databinding学习(3)

Gemini-Lin
 Gemini-Lin
发布于 2015/09/20 01:03
字数 251
阅读 106
收藏 0

android databinding目前暂不支持双向绑定 但是提供了 Observable Binding 来得到类似的效果

(1)继承 BaseObservable

public class ObservableUser extends BaseObservable{
    private String firstName;
    private String lastName;

    @Bindable
    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
        notifyPropertyChanged(BR.firstName);
    }

    @Bindable
    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
        notifyPropertyChanged(BR.lastName);
    }
}

BR是变异阶段生成的一个类 类似R.java 当你使用了 @Bindable去标记getter方法, BR中就会生成对应属性的一个entry,你就可以 BR.属性

在setter方法中使用 notifyPropertyChanged方法可以通知系统BR.属性 已经变化需要更新UI

(2)第二种双向绑定的实现方式

public class PlainUser {
    public final ObservableField<String> firstName = new ObservableField<>();
    public final ObservableField<String> lastName = new ObservableField<>();
    public final ObservableInt age = new ObservableInt();
}

更新数据

plainUser.firstName.set(++index +"");

(3) 神奇的 带ID的View 如果你在布局中对View设定了ID 那么你只需要在代码中 在binding对象中直接调用 同ID名的对象直接使用

binding.btnSet.setOnClickListener(new View.OnClickListener() {



© 著作权归作者所有

上一篇: databinding学习(4)
下一篇: databinding学习(2)
Gemini-Lin
粉丝 21
博文 51
码字总数 35808
作品 0
厦门
程序员
私信 提问
加载中

评论(1)

福尔摩斯1989
福尔摩斯1989
变异——编译 我也是不能急了28
databinding学习(1)

(1)在工程的gradle中声明 (2)在模块的gradle中声明 (3)声明一个数据模型 (4)设置layout中的数据源 必须设置 标签为根目录 在view上绑定数据 (5)在java代码中创建实体类对象 注意: 引入布局的...

Gemini-Lin
2015/09/18
147
0
DataBinding系列(三):RecyclerView中使用DataBinding

这一章,为大家带来利用Data Binding为RecyclerView填充数据。这里的难点和核心点就是RecyclerView中Adapter的实现。这里以RecyclerView多布局的情况来讲解。 1、一般情况下,我们RecyclerV...

陪你唠嗑
2017/10/12
0
0
Android Data Binding(二)

接下来我们来看一下如何使用DataBinding。 要使用DataBinding首先需要在Android Studio的build.gradle中添加 android{ ...... dataBinding{ enabled = true } } 这样就成功使用了dataBinding...

博为峰教研组
2016/11/10
21
0
关于Android MvvM的一些体会

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zly921112/article/details/82849549 前言 由于我司项目较老有很多历史包袱代码结构也比较混乱,需求复杂的页...

zhuliyuan丶
2018/09/26
0
0
JetPack 学习笔记:Databinding 与响应式

写在前面的废话: 我姑且也算个 Android 程序员,虽然上次写安卓已经是两年前。这次临时把原来的混合开发计划更改为原生开发 ,而 Android 端编码的工作就交给了我。 我花了 1 个月的时间完全...

龙骑将杨影枫
02/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
1K
12
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
15
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部