android jetpack compose Model对象更新变量 UI不更新、不刷新问题

以前是搞老本行Android原生开发的,因为工作原因,一直在用vue小程序;因为一些工作需要,又需要用到Android原生开发,建了个项目,打开源码一看,天塌了!!!我以前的layout.xml布局呢,怎么变成android jetpack compose组件了。百度一看说是Android最新的框架组件,哎~~本着能吃一口细糠,不吃一口粗粮的原则,学习了一下Compose;以下是我约到的难题,建立了一个Model类,然后Model变量更新,UI不刷新也不更新;后面解决了,记录一下!

  1. 首先,我建立了一个Model对象:
kotlin 复制代码
class DeviceGpioMModel  {
    var iconUnUse: Int? = null

    var icon: Int? = null

    var iconStop: Int? = null

    var name: String? = null

    var notes: String? = null

    var port: Int? = null

    var use  by mutableIntStateOf(0)

    fun useDevice() {
        this.use=1
    }

    fun getShowIcon(): Int {
        return when (use) {
            1 -> // 使用中
                icon!!

            2 -> // 暂停
                iconStop!!

            else -> // 未使用
                iconUnUse!!
        }
    }

    fun getStatusIcon(): Int {
        return R.drawable.ic_yunxing_u
    }
}

然后我的需求是,实例化上面的对象,然后点击组件,把use状态改为1,然后组件在调用getShowIcon()方法来获取对应的图标状态

  1. 以前的老代码:
kotlin 复制代码
var use  = 0
  1. 新的代码:
kotlin 复制代码
var use by mutableIntStateOf(0)

只需要把变量换成 by mutable相关state的方法,然后ui就会自动刷新了!

相关推荐
AIsoft_86896 小时前
职场音频文件怎么整理?录音APP有哪些用法
android·音视频
booboosui7 小时前
第一批个人 Agent 用户正在卸载,问题不在模型,在它住在哪儿
android
洞见前行7 小时前
点击图标到内容出现,你的 App 在这几秒里做了什么:Android 冷启动全链路优化实战
android·性能优化·android studio
凯基迪科技7 小时前
芯片UID绑定修改 加密与逆向修改思路分析
android
Liben8 小时前
Weex开发踩坑记录
android·前端·ios
xy34539 小时前
Axure9.0 热区典型实战使用场景
ui·axure·原型·产品设计
救救孩子把10 小时前
结构化输出为何“格式正确、答案错误”?JSON Schema 的能力边界
android·java·json·agent·agent服务
张小姐的猫10 小时前
【MySQL】事务
android·mysql·adb
你看我名字11 小时前
数眼智能 Search + Reader 实战:联网问答怎样避免“搜到了,却引用错了”
android·java·开发语言
恋猫de小郭11 小时前
最近 Android 有什么更新:Android Dev Summit 2026 技术解读
android·前端·flutter