在 Kotlin 中使用 MVVM 架構可以按照以下步驟進行:
創建 Model 類:Model 表示數據層,包含了應用程序的數據和業務邏輯。可以使用 Kotlin 的類來表示數據模型。
創建 ViewModel 類:ViewModel 是連接 Model 和 View 的橋梁。它負責處理應用程序的業務邏輯,并提供數據供 View 層展示。ViewModel 應該繼承自 Android 架構組件庫中的 ViewModel 類。
創建 View 類:View 表示用戶界面,它負責展示數據和接收用戶輸入。可以使用 Kotlin 的 Activity、Fragment 或者自定義 View 來實現。
在 View 中引用 ViewModel:在 View 類中創建 ViewModel 的實例,并通過 ViewModelProvider 獲取 ViewModel 對象。在 View 中可以觀察 ViewModel 中的數據變化,并根據變化更新界面。
在 ViewModel 中更新數據:ViewModel 可以通過調用 Model 中的方法來更新數據。當數據發生變化時,ViewModel 可以使用 LiveData 來通知 View 進行界面更新。
下面是一個簡單的示例代碼:
// Model
data class User(val name: String)
// ViewModel
class UserViewModel : ViewModel() {
private val _user = MutableLiveData<User>()
val user: LiveData<User> = _user
fun updateUser(name: String) {
val newUser = User(name)
_user.value = newUser
}
}
// View
class MainActivity : AppCompatActivity() {
private lateinit var viewModel: UserViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
viewModel = ViewModelProvider(this).get(UserViewModel::class.java)
viewModel.user.observe(this, Observer { user ->
// 更新界面
textView.text = user.name
})
button.setOnClickListener {
// 更新數據
val name = editText.text.toString()
viewModel.updateUser(name)
}
}
}
在這個示例中,Model 是一個簡單的 User 類。ViewModel 使用 LiveData 來保存用戶數據,并提供一個更新數據的方法。View 中通過觀察 ViewModel 中的 LiveData 來更新界面,并通過點擊按鈕來更新數據。