如何使用databinding in kotlin
原创
©著作权归作者所有:来自51CTO博客作者james_karon的原创作品,请联系作者获取转载授权,否则将追究法律责任
1.首先关键是配置好gradle:
in build.gradle(project):
ext.gradle_version = '3.0.1'
in build.gradle(app)
apply plugin: 'kotlin-kapt'
android{
....
dataBinding{
enabled = true
}
}
dependencies{
...
kapt "com.android.databinding:compiler:$gradle_version"
}
//kapt "com.android.databinding:compiler:$gradle_version" 可以不用的
2.layout:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="user"
type="com.m.databindingdemo.model.User"/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstname}"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.lastname}"
/>
</LinearLayout>
</layout>
3.User:(注意,field不能private,要不会读取不了)
class User( val firstname: String, val lastname: String)
4.activity:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = DataBindingUtil.setContentView<ActivityMainBinding>(this, R.layout.activity_main)
var user = User("Test", "User")
binding.user = user
}