面试题答案
一键面试1. 启用数据绑定
在 app/build.gradle
文件中,启用数据绑定:
android {
...
dataBinding {
enabled = true
}
}
2. 在布局文件中定义绑定表达式
例如,假设我们有一个包含 TextView
的布局文件 activity_main.xml
:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="user"
type="com.example.demo.User" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.name}" />
</LinearLayout>
</layout>
这里定义了一个 User
类型的变量 user
,并在 TextView
中使用 @{user.name}
来绑定 user
对象的 name
属性。
3. 在 Kotlin 代码中初始化和使用数据绑定
在 MainActivity.kt
中:
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import com.example.demo.databinding.ActivityMainBinding
import com.example.demo.User
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
val user = User("John Doe")
binding.user = user
}
}
这里通过 DataBindingUtil.setContentView
获取绑定对象,然后创建 User
对象并设置给绑定对象的 user
属性,这样布局中的 TextView
就会显示 User
对象的 name
值。
假设 User
类如下:
data class User(val name: String)