下面是对“第13天:高级主题 - ViewModel 和 LiveData”该文学习的更深层次的补充材料,对 Task.kt、TaskViewModel.kt和TaskAdapter.kt文件的理解。
1. Task.kt
package com.example.todoapp // 确保此包名与 AndroidManifest.xml 中的一致
package com.example.todoapp
:
这一行声明了当前文件属于com.example.todoapp
包。包用于组织代码,确保在项目中各个类名不冲突。它应与AndroidManifest.xml
中的package
声明保持一致。
data class Task(
val id: Int,
val name: String,
val isCompleted: Boolean = false
)
-
data class Task
: 这行定义了一个数据类Task
,用于表示任务的基本信息。数据类是 Kotlin 中用于持有数据的类,自动生成常用方法,如toString()
、equals()
和hashCode()
。 -
val id: Int
: 这是任务的唯一标识符。val
表示这个属性是只读的,不能被修改。 -
val name: String
: 这是任务的名称,同样是只读属性。 -
val isCompleted: Boolean = false
: 这是一个布尔值,表示任务是否已完成,默认值为false
。如果在创建任务时未提供此参数,则将使用默认值。
2. TaskViewModel.kt
package com.example.todoapp // 确保此包名与 AndroidManifest.xml 中的一致
package com.example.todoapp
: 与之前相同,声明该文件的包名。
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
- 导入语句: 这三行代码导入了
LiveData
、MutableLiveData
和ViewModel
类。LiveData
: 是一个可以被观察的数据持有者,适合在 Android 中用于数据更新通知。MutableLiveData
: 是LiveData
的可变版本,允许更新其值。ViewModel
: 是 Android Jetpack 组件之一,用于管理与 UI 相关的数据生命周期,以便在配置更改(如旋转屏幕)时保留数据。
class Task