在 Kotlin 中,數(shù)據(jù)綁定允許您將 UI 組件與數(shù)據(jù)源進(jìn)行綁定,從而實(shí)現(xiàn)自動(dòng)更新 UI。方法綁定是數(shù)據(jù)綁定的一種用法,它允許您在 UI 組件上直接調(diào)用方法。要實(shí)現(xiàn)方法綁定,請(qǐng)按照以下步驟操作:
build.gradle
文件中添加以下代碼:android {
...
dataBinding {
enabled = true
}
}
<layout>
標(biāo)簽包裹您的根布局,并添加一個(gè)名為 <data>
的子標(biāo)簽。在 <data>
標(biāo)簽中,定義要綁定的變量和方法。例如:<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewModel"
type="com.example.yourapp.YourViewModel" />
</data>
<!-- Your root layout here -->
</layout>
Activity
或 Fragment
中,將您的 ViewModel 賦值給布局中的變量。例如:class YourActivity : AppCompatActivity() {
private lateinit var viewModel: YourViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.your_layout)
viewModel = ViewModelProvider(this).get(YourViewModel::class.java)
val binding: YourLayoutBinding = DataBindingUtil.setContentView(this, R.layout.your_layout)
binding.viewModel = viewModel
}
}
<layout>
標(biāo)簽中的變量名調(diào)用方法。例如,如果您有一個(gè)名為 doSomething
的方法,可以在布局文件中使用 android:onClick
屬性調(diào)用它:<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Do something"
android:onClick="@{viewModel::doSomething}" />
現(xiàn)在,當(dāng)用戶點(diǎn)擊按鈕時(shí),將調(diào)用 ViewModel 中的 doSomething
方法。數(shù)據(jù)綁定將自動(dòng)處理從 ViewModel 到 UI 組件的數(shù)據(jù)傳遞和更新。