【问题标题】:Kotlin "Do not concatenate text displayed with setText. Use resource string with placeholders. "Kotlin“不要用 setText 连接显示的文本。使用带有占位符的资源字符串。”
【发布时间】:2020-09-14 16:56:11
【问题描述】:

我要设置文字:Station 1、Station 2、Station 3...

如果我有这样的代码(框架是 ScrollView 类型),我会收到警告:“不要连接使用 setText 显示的文本。将资源字符串与占位符一起使用。”

for(i in 1..10){
    frame.stationTextView.text = "Station $i"
}

如果我这样做,我不会收到警告。

for(i in 1..10){
    val str = "Station $i"
    frame.stationTextView.text = str
}

第二个例子对我来说似乎是多余的,但警告已经消失了。哪一个是正确的,可能都不是。我不确定如何使用索引正在变化的资源字符串。

【问题讨论】:

  • 第二种方式仍然“错误”。 Linter 只是不够复杂,无法捕捉并警告您。它告诉您不要显示硬编码文本,而是使用适当的字符串资源。

标签: android string kotlin


【解决方案1】:

创建如下字符串资源

 <string name="station_counter_text">Station %1$d</string>

然后从 Activity/Fragment 使用如下

for(i in 1..10)
 frame.stationTextView.text = getString(R.string. station_counter_text,i)

【讨论】:

    猜你喜欢
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多