Google官网
配置:
需要在Moudle的build.gradle的android{}里添加
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.example.login"
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
dataBinding {
enabled = true
}
}
数据类
data class Data(val etext:String)
xml
<?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:tools="http://schemas.android.com/tools">
<data>
<variable
name="data"
type="com.example.login.cart.Data" />
</data>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="500dp">
<TextView
android:text="@{data.etext}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30dp"/>
</LinearLayout>
</layout>
在Activity的类中声明我们的Binding类
package com.example.login.cart
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.databinding.DataBindingUtil
import com.example.login.R
import com.example.login.databinding.ActivityCloseBinding
class CloseActivity : AppCompatActivity() {
lateinit var binding:ActivityCloseBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_close)
binding = DataBindingUtil.setContentView<ActivityCloseBinding>(this, R.layout.activity_close)
binding.data = Data("稍等三秒")
Thread(Runnable {
Thread.sleep(3000)
binding.data = Data("Hello!Kotlin")
}).start()
}
}
效果图