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

Android Kotlin项目运行时setText拼接文本报错如何解决?

问题成因
  • 该报错由Android Lint的静态代码检查规则触发,若项目配置了Lint错误阻断构建,会导致打包/安装失败,容易被误认为是运行时异常。
  • 禁止直接拼接字符串传给setText的核心原因有两个:
    1. 不支持国际化适配:不同语言的语序存在差异,例如部分语言会将总量前置展示为「总进度/当前进度」,硬编码的拼接语序无法适配多语言场景,会出现语法错误。
    2. 维护成本高:硬编码的拼接逻辑散落在业务代码中,后续需要修改文案格式时需要逐处修改,容易出现漏改、不一致的问题。
解决方法
  1. 首先在项目的res/values/strings.xml中定义带占位符的字符串资源:
<!-- %1$d 表示第一个整数类型占位符,%2$d 表示第二个整数类型占位符 -->
<string name="progress_display">%1$d/%2$d</string>
  1. 在Kotlin业务代码中调用getString方法填充占位符后赋值给TextView:
tvPro.text = getString(R.string.progress_display, mCurrentPosition, proBar.max)
  • 若在Fragment、Adapter等非Context直接持有场景,需要使用合法Context调用:context?.getString(...) 或 requireContext().getString(...)
  • 若后续需要适配多语言,仅需在对应语言的strings.xml文件中调整占位符位置即可,无需修改业务代码。

内容的提问来源于stack exchange,提问作者Rashinda Thulakkana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:45:02