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

Kotlin中Vopros1数据类的vop字段为何输出为数字?

问题原因及解决方法
  • 核心原因:R.string.v1是Android系统分配的int类型资源ID,并非字符串本身。你调用R.string.v1.toString()只是把这个数字ID转成了字符串形式(比如"213145678"),数据类里存储的就是这个数字字符串,所以Text组件显示的自然是数字。

  • 正确处理方式:

    1. 先获取字符串资源的实际内容,再传入数据类:
      在Jetpack Compose中,通过LocalContext获取上下文,再调用getString()拿到真实文本:
      val context = LocalContext.current
      val v1Text = context.getString(R.string.v1)
      val vopros1 = Vopros_1(vop = v1Text, ...) // 传入实际文本
      
    2. 若数据类字段存的是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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 07:45:56