Android Kotlin安卓工作室警告”;不要将显示的文本与setText连接起来。使用带有占位符的资源字符串。”;

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(

我制作了一个简单的程序来学习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(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)