Android Kotlin安卓工作室警告”;不要将显示的文本与setText连接起来。使用带有占位符的资源字符串。”;
我制作了一个简单的程序来学习android studio中与Kotlin的连接。因此,我尝试从strings.xml中的资源中获取一个字符串值,如下所示,并用一个值连接Android Kotlin安卓工作室警告”;不要将显示的文本与setText连接起来。使用带有占位符的资源字符串。”;,android,kotlin,Android,Kotlin,我制作了一个简单的程序来学习android studio中与Kotlin的连接。因此,我尝试从strings.xml中的资源中获取一个字符串值,如下所示,并用一个值连接 <string name="txt_show">Your lucky number is %1$s</string> 通过替换 resultView.text = getString(R.string.txt.show, " ") + result.format(
<string name="txt_show">Your lucky number is %1$s</string>
通过替换
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
警告消失了,但我遇到了问题,首先结果是整数,这不是我所期望的。应该是双倍的。其次,在getString中添加函数格式将在屏幕上显示“意外错误…”消息停止程序
如何解决此问题?如果您有包含以下占位符的字符串:
<string name="price_string">Your price: %d</string>
KOTLIN
val text = getString(R.string.price_string, 2.5)
// Read text
val priceString = getString(R.string.price_string)
// Fill it
val output = String.format(priceString, 2.5)
// or
val output = priceString.format(2.5)
或者以“更长”的方式:
JAVA:
// Read text
String priceString = getString(R.string.price_string);
// Fill it
String output = String.format(priceString, 2.5);
KOTLIN
val text = getString(R.string.price_string, 2.5)
// Read text
val priceString = getString(R.string.price_string)
// Fill it
val output = String.format(priceString, 2.5)
// or
val output = priceString.format(2.5)
如果您有%s
,则必须用字符串填充它。这里有更多信息:
首先,结果是整数,这不是我所期望的。应该是双倍的
那你为什么要叫toInt
?只用
resultView.text = getString(R.string.txt_show, result)
和字符串中的%1$.2f
(或仅%.2f
),而不是%1$d
,以格式化为两位小数。您可以看到它的指定方式与代码中的format
函数中的指定方式相同。格式字符串(所有这些%d
等的含义)的文档位于。resultView.text=getString(R.string.txt\u show,result)在我使用%1$d时不起作用。因此,我必须将其更改为%.2f,并且我不再需要格式化函数来格式化为两位小数。谢谢。我该怎么写呢?我从web服务获取它(它是一个数字),然后,我需要一个百分比符号。it.data?.settlementPercentage.toString()+“%”尝试使用:%%
,因此文本中的字符将是正常的%
字符。例如String.format(“%s%%,折扣)
resultView.text = getString(R.string.txt_show, result)