DataBinding笔记1

2020-08-05  本文已影响0人  satisfying

开启DataBinding

  android {
   .......
    defaultConfig {....... }
    dataBinding {
        enabled = true
    }
    buildTypes {
       ........
    }
}

需要使用DataBinding 得xml文件


image.png

简单使用

 <data>
        <variable
            name="name"
            type="java.lang.String" />
        <variable
            name="age"
            type="java.lang.Integer" />
        <variable
            name="phone"
            type="java.lang.String" />
    </data>

<TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{name}" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{String.valueOf(age)}" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{phone}" />

textview 文本拼接使用 拼接字符串需要添加到string.xml文件

<TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{@string/name+name}" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{@string/age+String.valueOf(age)}" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{@string/phone+phone}" />

导入对象

 <import type="com.example.databinding.House"/>
        <variable
            name="house"
            type="House" />

简单的三目运算

 <TextView
   android:text="@{@string/house_address(house.address==null? @string/house_unit : house.address)}" />

上面activity 中调用方式

        val bindingBinding  = DataBindingUtil.setContentView<ActivityInFoBinding>(this@InFoActivity, R.layout.activity_in_fo)
        bindingBinding.lifecycleOwner=this
        bindingBinding.name="张三"
        bindingBinding.age=22
        bindingBinding.phone="1234567890"
        bindingBinding.house= House(address = "北京市通州区",size = 333,number = "202")
上一篇 下一篇

猜你喜欢

热点阅读