news 2026/11/3 12:34:51

Android里ViewModel的两种基本用法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Android里ViewModel的两种基本用法

1. 在compose里

@Composable fun CounterScreen( vm: CounterViewModel = viewModel() // 保持实例 ) { val count by vm.count.collectAsState() Button(onClick = { vm.increment() }) { Text("Count: $count") // 正常计数 } }

这需要在app的 build_gradle.kts里添加依赖:

dependencies { // other dependencies implementation(libs.androidx.lifecycle.viewmodel.compose) //... }

如果需要传参:

// 1. 使用 ViewModelFactory class CounterViewModelFactory(private val counterId: String) : ViewModelProvider.Factory { override fun <T : ViewModel> create(modelClass: Class<T>): T { return CounterViewModel(counterId) as T } } // 2. 在 Composable 中使用 @Composable fun CounterScreen(counterId: String) { val vm: CounterViewModel = viewModel( factory = CounterViewModelFactory(counterId) ) // 使用 viewModel... }

2. 在 activity里:

import androidx.activity.viewModels class MainActivity : ComponentActivity() { // 这在 Activity/Fragment 类中有效 private val vm: CounterViewModel by viewModels()

也可以写成:

val vm: CounterViewModel = ViewModelProvider(this)[CounterViewModel::class.java]
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 2:38:04

计算机毕设java网络流行语资源库建设及实现 基于Java的网络热词资源管理系统的设计与开发 Java环境下网络流行语资源库的构建与应用实现

计算机毕设java网络流行语资源库建设及实现f3fk69 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着互联网的飞速发展&#xff0c;网络流行语已经成为当代文化的重要组成部分&…

作者头像 李华
网站建设 2026/11/2 2:37:28

HeyGem系统注意事项:上传文件需符合指定格式要求

HeyGem系统文件格式规范与技术实现解析 在AI驱动的数字人视频生成领域&#xff0c;自动化口型同步技术正快速改变内容生产的模式。传统依赖人工拍摄与剪辑的工作流&#xff0c;已难以应对企业级、多语言、大规模个性化视频的需求。HeyGem系统的出现&#xff0c;正是为了解决这一…

作者头像 李华
网站建设 2026/11/1 3:44:23

HeyGem系统语音识别模块可自动生成对应文本

HeyGem系统语音识别模块可自动生成对应文本 在数字人技术快速渗透教育、客服与内容创作的今天&#xff0c;一个关键问题始终困扰着开发者和内容生产者&#xff1a;如何让虚拟形象“说话”得既自然又高效&#xff1f;传统方式依赖人工撰写脚本、逐帧对齐口型&#xff0c;流程繁琐…

作者头像 李华
网站建设 2026/11/2 2:52:58

Arduino安装教程:IDE语言切换与界面定制操作

Arduino开发环境配置实战&#xff1a;中文界面设置与个性化定制全指南 你是不是刚装好Arduino IDE&#xff0c;面对满屏英文菜单一头雾水&#xff1f; 或者在教室投影下看不清代码&#xff0c;学生频频提问“ 文件 ”在哪、“ 上传 ”怎么点&#xff1f; 又或者深夜调试…

作者头像 李华