【发布时间】:2019-03-12 06:36:12
【问题描述】:
我用 Kotlin 做了一个简单的程序来学习 android studio 中的连接。因此,我尝试从 strings.xml 中的资源中获取字符串值,如下所示并与值连接
<string name="txt_show">Your lucky number is %1$s</string>
我收到来自 getString 的警告“不要连接文本...”
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val firstNumber = numEditText.text
processButton.setOnClickListener {
val result = concatText(firstNumber.toString().toDouble())
resultView.text = getString(R.string.txt_show, " ") + result.format(2)
}
}
private fun concatText(myNumber: Double): Double {
val luckyNumber = 1.79
return luckyNumber * myNumber
}
private fun Double.format(digits: Int) = java.lang.String.format("%.${digits}f", this)}
通过替换
resultView.text = getString(R.string.txt.show, " ") + result.format(2)
与
val finalResult = result.toInt()<p>
resultView.text = getString(R.string.txt_show, finalResult)<p>
并将strings.xml资源中的%1$s替换为%1$d
警告消失了,但我遇到了问题,首先结果是整数,这不是我所期望的。应该是双倍的。其次,在 getString 中添加函数格式将停止程序并在屏幕上显示“Unexpected Error...”消息。
我该如何解决这个问题?
【问题讨论】: