android – 无法解析在扩展函数中提供给vararg参数的字符串

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参数传递.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...