Android开发人员文档:
1. 搭建环境build.gradle:app
apply plugin: "kotlin-kapt"
android {
...
dataBinding {
enabled = true
}
}
2. 使用 layout
data
绑定你的视图
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable name="data" type="com.ajanuw.androiddemo.data.MyData" />
</data>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22dp"
android:text="@{data.name}" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22dp"
android:text="@{String.valueOf(data.age)}" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="@{data::onClickFriend}"
android:text="Button" />
</LinearLayout>
</layout>
main.kt
package com.ajanuw.androiddemo
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.databinding.DataBindingUtil
import com.ajanuw.androiddemo.data.MyData
import com.ajanuw.androiddemo.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
// 创建绑定类
private lateinit var b: ActivityMainBinding
lateinit var data: MyData
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
b = DataBindingUtil.setContentView(this, R.layout.activity_main)
data = MyData()
b.data = data
}
}
myData.kt
package com.ajanuw.androiddemo.data
import android.R.attr.name
import android.view.View
import androidx.databinding.BaseObservable
import androidx.databinding.Bindable
import com.ajanuw.androiddemo.BR
class MyData() : BaseObservable() {
@Bindable
var name = "you name"
@Bindable
var age = 12
fun onClickFriend(view:View) {
name = "hello world"
age = 22
notifyPropertyChanged(BR._all)
}
}