You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Compose按钮传入Lambda未执行问题排查(Kotlin高阶函数)

问题原因与修复方案

错误出在ShowDetails组件的Button点击事件中——你只是引用了clickAction这个Lambda变量,但没有执行它。Lambda作为函数类型,必须通过()调用才能触发其内部代码逻辑。

修复后的代码

修正ShowDetails函数

@Composable
fun ShowDetails(clickAction: () -> Unit){
    Button(onClick = {
        clickAction() // 添加上括号,执行传入的Lambda逻辑
    }) {
        Text(text = "Show Details")
    }
}

可选优化:更规范的Context获取方式

Compose中推荐通过LocalContext.current获取Context,而非手动传入,这样能避免空值风险:

@Composable
fun MainScreen(){
    val context = LocalContext.current
    Column {
        ScreenName(name = "Main Screen")
        ShowDetails{
            Intent(context, DetailsActivity::class.java).also { i ->
                context.startActivity(i)
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者dev.vinod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:05:22