Kotlin“不要连接与 setText 显示的文本。使用带有占位符的资源字符串。”

Geo*_*Cap 2 string android kotlin

我想设置文本:车站 1、车站 2、车站 3...

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

for(i in 1..10){
    frame.stationTextView.text = "Station $i"
}
Run Code Online (Sandbox Code Playgroud)

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

for(i in 1..10){
    val str = "Station $i"
    frame.stationTextView.text = str
}
Run Code Online (Sandbox Code Playgroud)

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

cra*_*ead 5

创建如下字符串资源

 <string name="station_counter_text">Station %1$d</string>
Run Code Online (Sandbox Code Playgroud)

然后从 Activity/Fragment 使用如下

for(i in 1..10)
 frame.stationTextView.text = getString(R.string. station_counter_text,i)
Run Code Online (Sandbox Code Playgroud)