我想更改每次单击按钮时显示在按钮上的文本,因此我编写了以下代码,但它不起作用.我哪里做错了?

    class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            var i=0;
            Button(onClick = {i++ }) {
                Text("Clicked $i times") //!!not updating here
            }
        }
    }
}

推荐答案

判断compose如何使用states and recomposition.

使用类似于:

var i by remember { mutableStateOf(0) }

Button(onClick = {i++ }) {
    Text("Clicked $i times")
}

Android相关问答推荐

在Android Studio Iguana上运行示例代码时,Gradle Build错误

在Kotlin Jetpack Compose中点击按钮后启动另一个Android应用程序

在不增加父行宽度的情况下添加延迟行或可滚动行

Yarn 机器人导致活动未找到,但Gradlew Run工作正常

如何在Android Jetpack Compose中找到我的手机屏幕一行有多少个单词

穿戴与iPhone连接的安卓操作系统

可组合:don';t剪辑视图

Color.Transparent 和 Color.Unspecified 之间的区别

当父布局的背景为浅色时,Android ProgressBar 背景 colored颜色 变为灰色

在一个函数中组合相同的流 struct

任务 ':app:checkReleaseDuplicateClasses' 执行失败

在移动设备上看到时如何增加 PasswordField 文本?

导航组件中预期的函数调用map(...)

Compose Accompaniist Pager 中的 TabRow/Tab 重组问题

我们也可以或应该对主要小部件使用预览 compose 功能吗?

ionic - capacitor - Android 风味 - 无法在模拟器或真实设备中运行应用程序

无法通过 retrofit 解析对 kotlin 数据类的 xml 响应

如何删除 Ktor 客户端 2.0.0 的默认标头

如何在 Kotlin 的片段中制作图像列表?

Google API:java.lang.ClassNotFoundException:找不到类sun.misc.Service