当前位置: 首页 > news >正文

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]
http://www.jsqmd.com/news/191649/

相关文章:

  • HeyGem系统防火墙需开放7860端口供外部连接
  • 树莓派+Home Assistant:家庭自动化完整指南
  • 激活函数详解:从感知机到神经网络的核心组件
  • 图解说明ESP-IDF摄像头驱动工作流程
  • HeyGem系统历史记录分页浏览功能便于长期项目管理
  • 基于springboot + vue大学志愿填报系统(源码+数据库+文档)
  • 计算机毕设Java面向高校的电动车租赁服务业务系统 基于Java的高校电动车共享租赁管理系统开发与实现 面向高校的Java电动车租赁服务平台设计与应用
  • HeyGem系统支持FLV、MKV、WEBM等流媒体格式输入
  • 手把手教你使用树莓派4b引脚功能图控制继电器
  • HeyGem系统依赖PyTorch框架,推荐使用GPU版本加速
  • HeyGem系统对比其他数字人工具的优势总结
  • Multisim界面本地化实战:语言包注入示例
  • 终端电阻配置原理:USB转485驱动阻抗匹配实操说明
  • HeyGem系统外贸公司开拓国际市场内容本地化利器
  • Python算法从入门到实战:打造高效简洁的程序逻辑
  • 无需编程基础!HeyGem WebUI界面让每个人都能做数字人视频
  • HeyGem系统日志路径为/root/workspace/运行实时日志.log
  • HeyGem系统购买GPU算力套餐享受优先处理权
  • 【C#网络拦截器核心技术】:揭秘高效请求监控与数据捕获的5大实战技巧
  • HeyGem系统支持跨平台运行:Windows、Linux、Mac均可部署
  • HeyGem系统宠物店主人创建萌宠说话搞笑视频
  • HeyGem系统可用于制作AI客服应答演示视频
  • HeyGem系统老年大学远程教学视频轻松生成
  • HeyGem系统房地产中介可创建楼盘介绍AI讲解员
  • HeyGem系统音乐人用AI形象发布新歌MV创意十足
  • HeyGem系统自媒体博主提升内容更新频率的秘密武器
  • 一文说清Arduino蜂鸣器音乐代码工作原理
  • 新手必看:树莓派4B插针定义入门级手把手指南
  • HeyGem系统旅游行业打造景点导游数字人服务
  • HeyGem系统日语、韩语等亚洲语种初步适配成功