开启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")
网友评论