就像TITLE所说的那样,我需要从string.xml获取文本,问题是它得到了这个错误:

@Composable调用只能从@Composable函数的上下文中进行

@Composable
fun buttonClick() {
    var text = ""
    //needs this modifier for component click 
    var modifier: Modifier = Modifier.clickable() {
        text = stringResource(id = R.string.app_name) //this is were warning is
    }
}

这就是我在函数中需要的东西,如何获得它

.clickable {
    stringResource(id = R.string.app_name) 
}

推荐答案

尝尝这个,

val context = LocalContext.current
var text = ""
Button(
    onClick = {
        text = context.getString(R.string.app_name)
    }
) {
    Text(text = "Hit me")
}

您可以使用LocalContext来访问getString.

Android相关问答推荐

如何正确增加LazyStream中的变量

未解析的引用:背景 colored颜色

在Android上使用XSLT文件转换XML文件

在命令行Android应用程序开发中苦苦挣扎

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

看不到选项菜单栏

SDK 33 的问题 - 面向 S+(版本 31 及更高版本)要求在创建 PendingIntent 时指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之一

为什么我收到这个错误我需要安装 android studio

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

在 kotlin 中动态添加 GridView

视觉转换后获取文本

在compose中,为什么修改List元素的属性,LazyColumn不刷新

Hilt 依赖注入重复绑定错误

GridLayout 和 GridView 有什么好用和区别

如何在 TextButton 中分隔文本和图标

Android Compose:LazyColumn 和 Column with verticalScroll 的区别

Android Studio Emulator Internet 连接问题仅是第一次

Jetpack Compose Material3 - switch 标签

如何根据加载图像的 colored颜色 绘制边框?

在 Android 10 (API 29) 中隐藏状态栏并在应用程序中使用其空间