import android.databinding.DataBindingUtil import android.os.Bundle import android.support.v7.app.AppCompatActivity import org.jetbrains.anko.act import org.niray.imdemo.databinding.ActivityMainBinding @Suppress("MISSING_DEPENDENCY_CLASS") class MainActivity : AppCompatActivity() { val mBean by lazy { DataBean().apply { userName.set("苏州独墅湖") userAge.set(System.currentTimeMillis().toInt()) } } val binder by lazy { DataBindingUtil.setContentView<ActivityMainBinding>(act, R.layout.activity_main) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binder.userBean = mBean postD() } fun postD() { window.decorView.postDelayed(object : Runnable { override fun run() { mBean.userName.set("I'm From Delayed") mBean.userAge.set(System.currentTimeMillis().toInt()) binder.userBean = mBean postD() } }, 1234) } }
<?xml version="1.0" encoding="utf-8"?> <layout> <data> <variable name="userBean" type="org.niray.imdemo.DataBean" /> </data> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="org.niray.imdemo.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{String.valueOf(userBean.userAge)}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{userBean.userName}" /> </LinearLayout> </layout>
http://www.jianshu.com/p/14281500bd74 http://kovenant.komponents.nl/android/features/ dependencies { // ... kapt 'com.android.databinding:compiler:2.2.0'//改为对应版本 } kapt { generateStubs = true } val binding = DataBindingUtil.setContentView<ActivityDataBindingBinding>(act, R.layout.activity_data_binding) @Suppress("MISSING_DEPENDENCY_CLASS") binding.userbean = UserBean("Grubby", "38")