首页 > 其他分享 >5.1

5.1

时间:2024-06-19 22:36:21浏览次数:13  
标签:5.1 函数 itemDetails ItemEditScreen 更新 itemUiState updateUiState

使用 Room 更新实体
在最后这个任务中,您将添加最后几段代码以实现更新功能。您将在 ViewModel 中定义必要的函数,并在 ItemEditScreen 中使用这些函数。

又到编写代码的时候了!

在 ItemEditViewModel 类中,添加一个名为 updateUiState() 的函数,该函数接受 ItemUiState 对象且不返回任何内容。此函数会使用用户输入的新值更新 itemUiState。

fun updateUiState(itemDetails: ItemDetails) {
    itemUiState =
        ItemUiState(itemDetails = itemDetails, isEntryValid = validateInput(itemDetails))
}
在此函数中,您要将传入的 itemDetails 分配给 itemUiState 并更新 isEntryValid 值。如果 itemDetails 为 true,应用会启用 Save 按钮。只有在用户输入的内容有效时,您才将此值设置为 true。

转到 ItemEditScreen.kt 文件。
在 ItemEditScreen 可组合项中,向下滚动到 ItemEntryBody() 函数调用。
将 onItemValueChange 参数值设为新函数 updateUiState。

ItemEntryBody(
    itemUiState = viewModel.itemUiState,
    onItemValueChange = viewModel::updateUiState,
    onSaveClick = { },
    modifier = modifier.padding(innerPadding)
)
运行应用。
转到 Edit Item 界面。
将其中一个实体值留空,使其无效。请注意 Save 按钮如何自动停用。

标签:5.1,函数,itemDetails,ItemEditScreen,更新,itemUiState,updateUiState
From: https://www.cnblogs.com/galileo9527/p/18257644

相关文章

  • 5.10
    实验三  综合性训练(搭建中小企业园区网)  一、实验目的:1.通过对网络设备的连通和对拓扑的分析,加深对常见典型局域网拓扑的理解;2.通过路由建立起网络之间的连接,了解网络路由的设计与配置;3.进一步熟悉交换机、路由器的基本操作命令。二、实验设备:PacketTracer三、实验拓......
  • 5.11
    实验三  综合性训练(搭建中小企业园区网)  一、实验目的:1.通过对网络设备的连通和对拓扑的分析,加深对常见典型局域网拓扑的理解;2.通过路由建立起网络之间的连接,了解网络路由的设计与配置;3.进一步熟悉交换机、路由器的基本操作命令。二、实验设备:PacketTracer三、实验拓......
  • 5.12
    学习内容:如何解决以下报错Accessdeniedforuser'root'@'localhost'(usingpassword:YES)java.sql.SQLException:Accessdeniedforuser'root'@'localhost'(usingpassword:YES) 这个错误信息表明您尝试使用MySQL数据库时,以用户root从localhost进行登录,但是提......
  • 5.13
    学习内容;以下报错如何解决Causedby:org.codehaus.groovy.control.MultipleCompilationErrorsException:startupfailed:根据搜索到的内容总结如下遇到Causedby:org.codehaus.groovy.control.MultipleCompilationErrorsException:startupfailed:这个错误,通常意味着在编......
  • 5.16
    以下报错如何解决C:\Users\xxx\PycharmProjects\pythonProject.venv\Scripts\python.exeC:\Users\xxx\PycharmProjects\pythonProject\9003.pyC:\Users\xxx\PycharmProjects\pythonProject\9003.py:9:SyntaxWarning:invalidescapesequence'#'regEx=......
  • 5.15
    学习内容:今天学个新功能,即时刷新和下拉刷新如何把以下代码的下拉刷新改为即时刷新<androidx.drawerlayout.widget.DrawerLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schema......
  • 5.1
    题目;上机实验一:黄金分割法(0.618法)程序设计  1、基本要求通过一维寻优黄金分割法的程序设计,培养学生计算机的应用能力,并为今后无约束优化方法的学习和编程,奠定基础;掌握缩小寻优区间的黄金分割法。2、主要内容(1)请用0.618法求解优化问题: 的极小点和极小值(进退法确定初始......
  • DHorse v1.5.1 发布,基于 k8s 的发布平台
    版本说明新增特性支持k8s的v1.30.x版本;优化特性优化回滚功能;修复注册来源的回滚问题;新增和修改应用时校验应用名;升级kubernetes-client至v6.13.0;调整部署明细表头展示;升级指南升级指南DHorse介绍DHorse是一个轻量级、简单易用的云应用管理平台,具有多云和多环境管......
  • vm17Pro17.5.1安装操作系统
    vm17Pro17.5.1安装操作系统前言一、windows1.DVD安装1.1[操作系统下载]1.2操作系统版本1.3[windows虚拟机创建]1.4操作系统安装1.4.1虚拟机设置1.4.2客户机启动1.4.3安装设置1.4.4磁盘设置1.4.5区域设置1.4.6键盘布局1.4.7账户设置1.4.8历史及隐私设置1.4......
  • 2023年全球精氨酸市场规模为565.13百万美元
    研究对象:精氨酸行业精氨酸(Arginine),是氨基酸类化合物。在人体内参与鸟氨酸循环,促进尿素的形成,使人体内产生的氨经鸟氨酸循环转变成无毒的尿素,由尿液排出,从而降低血氨浓度。有较高浓度的氢离子,有助于纠正肝性脑病时的酸碱平衡。与组氨酸,赖氨酸共同为碱性氨基酸。精氨酸广泛应用......