Kotlin中Vopros1数据类的vop字段为何输出为数字?
问题原因及解决方法
核心原因:
R.string.v1是Android系统分配的int类型资源ID,并非字符串本身。你调用R.string.v1.toString()只是把这个数字ID转成了字符串形式(比如"213145678"),数据类里存储的就是这个数字字符串,所以Text组件显示的自然是数字。正确处理方式:
- 先获取字符串资源的实际内容,再传入数据类:
在Jetpack Compose中,通过LocalContext获取上下文,再调用getString()拿到真实文本:val context = LocalContext.current val v1Text = context.getString(R.string.v1) val vopros1 = Vopros_1(vop = v1Text, ...) // 传入实际文本 - 若数据类字段存的是int类型的资源ID,也可以直接在Text中用
stringResource加载:
调整数据类字段类型为Int:
实例化时直接传data class Vopros_1(val vop: Int, ...)R.string.v1,然后在Text中显示:Text(text = stringResource(id = vopros1.vop))
- 先获取字符串资源的实际内容,再传入数据类:
内容的提问来源于stack exchange,提问作者Alexey L
相关产品推荐
相关产品推荐

