1.build.gradle配置
在android{}里添加
//与buildTypes同级
dataBinding {
enabled = true
}
2.xml文件最外层使用layout,注意是小写的l,不是L。这里的文件名是
activity_main.xml,后面使用Databinding时所使用的类和xml文件名有关。
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="mytest"
type="com.example.testpro.Test" />
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{mytest.name}"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/popWin"
android:text="popWinUp"
android:layout_marginTop="100dp"
android:layout_gravity="center"
/>
</LinearLayout>
</layout>
3.建一个bean类
class Test {
var name:String? = null
constructor(name: String?) {
this.name = name
}
}
4.代码里使用
var binding:ActivityMainBinding = DataBindingUtil.setContentView(this,R.layout.activity_main)
binding.mytest = Test("hahahaha")
这里再啰嗦一下,ActivityMainBinding是根据你的xml文件名生成的,如果你是second.xml,则是SecondBinding,反正多思考,当时就是不思考查了好久,气死。