class PlaylistViewNewModel (var playlist: Playlist?) : ViewModel() {
var limit = 100
private val name by lazy {
//lazy 只会执行一次
playlist?.id
}
//重写get方法 每次使用都是调用get(方法)
private val playlistId: String
get() = playlist?.id ?: ""
}
使用
初始化
mPlaylistVM = PlaylistViewNewModel(null)
设置变量
PlaylistVM?.playlist = playlist
ViewModel 初始化
fragment
private val mMyPlaylistVM by lazy {
ViewModelProvider(this)[MyPlaylistViewModel::class.java]
}
父fragment内共用
private val mMyPlaylistVM1 by lazy {
ViewModelProvider(requireParentFragment())[MyPlaylistViewModel::class.java]
}
activity内共用
private val mPlayVM by lazy {
ViewModelProvider(requireActivity())[PlayViewModel::class.java]
}
kotlin 初始化变量
于 2023-07-19 21:54:07 首次发布
该文章讲述了在Android应用开发中如何使用ViewModel。创建了一个名为PlaylistViewNewModel的ViewModel实例,通过lazy进行单次初始化,主要属性包括playlist和limit。在不同场景下,如fragment和activity,使用ViewModelProvider进行实例化。同时展示了如何设置和获取playlist的id。
摘要由CSDN通过智能技术生成