strings.xml中
<string name="my_string">Showing your number: %1$s</string>
ActivityExt.kt
fun Activity.showToast(textResId: Int,vararg formatArgs: String) {
val text = getString(textResId,formatArgs)
Toast.makeText(this,text,Toast.LENGTH_SHORT).show()
}
MainActivity.kt
val number = 11 showToast(R.string.my_string,number.toString())
带有以下文字的吐司显示:
Showing your number: [Ljava.lang.String;@2cfa3b]
为什么会这样?
解决方法
使用
spread运算符:
fun Activity.showToast(textResId: Int,*formatArgs)
Toast.makeText(this,Toast.LENGTH_SHORT).show()
}
目前,您将传递一个数组作为格式参数.通过使用spread运算符,您可以将数组的内容作为format参数传递.