Я сделал простую программу, чтобы узнать о конкатенации в Android Studio с Kotlin. Итак, я попытался получить строковое значение из ресурсов в 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 ()
resultView.text = getString (R.string.txt_show, finalResult)
И заменить % 1 $ s на % 1 $ d в ресурсах strings.xml
Предупреждение ушло, но у меня возникли проблемы, во-первых, результат - целое число, а это не то, что я ожидал. Это должно быть в два раза. Во-вторых, добавление формата функции в getString остановит программу с сообщением «Неожиданная ошибка ...» на экране.
Как я могу решить эту проблему?