DataBinding绑定控件

虽然现在我是在做Android的开发,但是偶尔也会有学一点JS的知识,没办法现在JS混得比Android好多了,唉说起来就伤心。

JS里面呢有个东西特别好用,就是事件绑定,JS的控件不用频繁的去setText,都直接绑定数据的了,从网络上获取数据回来后自动显示在控件上了,不用你一个个找到控件的ID再慢慢去setText。

现在,哦不是现在,Google发布5.0的时候就出了个DataBinding的东西,大概也是干这样的事的,话说我也是才知道····

还不懂具体什么意思的话看例子

首先有个bean,用来解析JSON数据的bean就好

    private boolean sex;   //性别(别问为什么是boolean,后台给的)
    private String name;  //名字
    private String attentionStatus; //这个是类似微博那个是否关注的状态,数据是0或者1,不过我用了String类型,为了演示,不过也没错

比如里面有这三个参数

<?xml version="1.0" encoding="utf-8"?>
<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:bind="http://schemas.android.com/tools">
    <data>
        <variable
            name="bean"
            type="com.***.***.***.bean"/>
    </data>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:orientation="vertical"/>
        <TextView
            android:id="@+id/tv_person_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{bean.name}"  //这是神奇的事件绑定
/>
        <TextView
            android:id="@+id/tv_person_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{bean.sex? `男` : `女`}"//这也是神奇的事件绑定,还加了正则表达式
/>

        <CheckBox
            android:id="@+id/cb_concerned"
            android:layout_width="55dp"
            android:layout_height="30dp"
            android:checked="@{bean.attentionStatus.equals(`0`)? false : true }"//这个更加6
            android:text="@{bean.attentionStatus.equals(`0`)? `+关注`:`已关注`    }"//这个还是
            android:textColor="@color/white"
/>

</LinearLayout>
</layout>

记住

<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:bind="http://schemas.android.com/tools">
    <data>
        <variable
            name="bean"
            type="com.***.***.***.bean"/>
    </data>

这一串一定要放在开头,把控件包起来才行
***是你包名,会有提示的
name="bean"是名字,很神奇那里就用到了

然后正常来说联网获取数据回来了
然后用findbyid
或者一直都挺火的butterknife框架加个AS的butterknife zelezny这个插件可以自动注解控件(这两个搭配还是很方便的,建议没用过的都去找找,起码不用写findbyid了)

正常的流程就开始一个个数据setText进去了

可是xml加了那句绑定以后咧
首先初始化一下

Activiy***Binding binding= DataBindingUtil.setContentView(this, R.layout.activiy_***);

Activiy***Binding是你xml配置好了,你打Activiy它会自动出现的,是以你的Activiy名字命名的。

binding.setPatient(bean);//bean是后台获取数据解析后的结果

好了,就这一句话数据自动进去了

然后你的控件有写ID的嘛
你要找到这个控件也不用findbyid
直接binding.***就能找到了,例如:binding.cbConcerned就是那个checkbox
就像这样用
binding.cbConcerned.setOnClickListener(cbClick);

自带holder光环啊

这只是最基础的应用,更多功能就自行百度了,我只是抛个砖而已O(∩_∩)O~

说了辣么多好处其实还有不方便的地方我也说下吧
比如最不方便的就是用ID找控件的时候<include>里面的控件都找不出来,这点太坑了···

PS:今天要不要加班呢,晚上吃啥呢,这是个问题,哈哈~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容