gpt4 book ai didi

android - 为什么我们需要在Android Studio中连接字符串之前添加@SuppressLint ("SetTextI18n")注解

转载 作者:行者123 更新时间:2023-12-02 13:29:36 27 4
gpt4 key购买 nike

我尝试使用以下代码连接“数字”(整数变量)和“$”(字符串),但我收到了来自 android studio 的警告:“不要连接使用 setText 显示的文本。将资源字符串与占位符一起使用。”并建议我添加“@SuppressLint("SetTextI18n")”。在此之后,警告消失了。

连接字符串有什么问题。以及为什么我们需要添加

@SuppressLint("SetTextI18n")
fun displayPrice(number: Int){
price_text_view.text= "$number$"
}

最佳答案

“I18”代表“国际化”。 Android 的本地化资源机制允许您支持各种语言环境,而无需修改您的代码。例如,如果您的应用程序必须支持多种货币,它的外观如下所示:

res/values-en_US/strings.xml :

<string name="price">%d$</string>

res/values-en_UK/strings.xml :
<string name="price">%d£</string>

res/values-de/strings.xml :
<string name="price">%d€</string>

然后您的代码将根据设备的语言环境自动选择正确的版本:
fun displayPrice(number: Int) {
price_text_view.text = resources.getString(R.string.price, number)
}

如果您的应用程序仅支持 $ 的货币那么对它进行硬编码并使用 @SuppressLint("SetTextI18n") 是有意义的使警告静音。否则,请考虑使用字符串资源。

关于android - 为什么我们需要在Android Studio中连接字符串之前添加@SuppressLint ("SetTextI18n")注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62245794/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com