我希望文本取自字符串资源,具体取决于项.路由,在以下代码之前指定.

但整个"when"表达给了我一个错误:


Text(
        text = stringResource(id = {
            when (item.route) {
                "menu_screen" -> R.string.menu
                "orders_screen" -> R.string.orders
                else -> R.string.orders
            }
        }),
        textAlign = TextAlign.Center
    )

推荐答案

当你在某物周围放bare个括号{ }时,它被解释为lambda函数.我所说的"裸体"指的是不在课后/娱乐/何时/如果/否则等等.你需要go 掉你放在那里的额外括号.

Text(
    text = stringResource(id = 
        when (item.route) {
            "menu_screen" -> R.string.menu
            "orders_screen" -> R.string.orders
            else -> R.string.orders
        }
    ),
    textAlign = TextAlign.Center
)

其他一些语言(如Java)允许用括号括住代码,以限制内部声明的变量的范围,或计算包含多个表达式的内容.要在Kotlin中实现这一点,必须使用作用域内联函数,例如run { }.

Android相关问答推荐

我遇到了一个HashMaps对象没有存储在Firebase数据库中的问题.HashMap的一个对象put方法未被存储

Android 14(Oneui 6)中的本地推送通知行为不一致

如何修复Google Play市场中有关已删除广告库的错误消息?

如何在Jetpack Compose中将对象的移动从一个路径平滑地切换到另一个路径?

jetpackcompose-如何对解析后的复杂对象进行状态提升?

是否可以附加事件处理程序,如onClick,拖动到Canvas Composable中绘制的内容,或使用drawBehind修饰符?

React-Native Manifest 合并失败并出现多个错误

我怎样才能在多行 TextView 旁边有一个 ImageView 并且不超过父级的限制?

setContentView() 方法的签名

如何从包装在泛型中的 retrofit 调用中检索密钥?

compose 导航参数字符串包含花括号?

如何解决 compose 中material 图标的由于接收器类型不匹配,以下候选者都不适用

如何关闭可组合对话框?

使用默认使用 RTL 语言的项目本地化 android 应用程序

Int 传递给 Intent 但Android工作室说我传递了一个字符串

喷气背包组成影子奇怪的行为

使用 capacitor cordova 插件的 Android Studio 错误

为什么我不能在屏幕外拿任何物体

如何使用 Glide 将图像下载到设备内部存储

WearOS - 有没有办法从心电图传感器收集原始数据?