news 2026/7/21 19:45:54

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/7/18 3:11:18

中老年人文化活动平台系统|基于springboot + vue中老年人文化活动平台系统(源码+数据库+文档)

中老年人文化活动平台系统 目录 基于springboot vue中老年人文化活动平台系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue中老年人文化活动平台…

作者头像 李华
网站建设 2026/7/19 18:53:56

超详细版fastbootd命令行操作指南(含实战案例)

深入 fastbootd&#xff1a;从原理到实战的完整操作手册&#xff08;附真实调试案例&#xff09;你有没有遇到过这样的场景&#xff1f;OTA 升级失败&#xff0c;设备卡在启动动画&#xff1b;想测试一个 GSI 镜像&#xff0c;却怕刷坏了主系统&#xff1b;或者需要远程修复一台…

作者头像 李华
网站建设 2026/7/18 6:37:10

多合一 BBR 新版脚本以及优化

前言这篇文章是给腾讯云 TDP 的小伙伴们看的&#xff0c;在你刚买到非大陆服务器准备搭建个人网站的时候&#xff0c;运行一下本篇文章的脚本&#xff0c;进行一下BBR的优化。本篇文章用到的脚本总共有两个。# BBR开启和选择模式脚本 wget -N --no-check-certificate "ht…

作者头像 李华
网站建设 2026/7/20 3:53:30

HeyGem系统集成ChromeDriver实现自动化测试脚本

HeyGem系统集成ChromeDriver实现自动化测试脚本 在AI视频生成系统日益复杂的今天&#xff0c;一个微小的前端交互变更可能就会导致整个批量处理流程中断。对于HeyGem这类依赖用户上传音频、驱动数字人生成口型同步视频的应用而言&#xff0c;每一次版本迭代后都必须验证“上传…

作者头像 李华