我有两个字符串资源。 main\values 中的第一个是英文的,没有字符串参数:
<string name="example">Have a good day!</string>
但是在法语中,在 values-fr 下,我们有一个带有一个参数的不同短语,如下所示:
<string name="example">Bonne journée M. %1$s!</string>
我应该如何使用资源字符串格式化程序?这行得通,但似乎不正确(并且会生成 lint 警告):
textView.setText(getString(R.string.example, name));
lint 警告为“StringFormatInvalid”,描述为“格式字符串‘example
’不是有效的格式字符串,因此不应将其传递给 String.format
"
最佳答案
您的方法没有任何问题。即使参数太多,格式化程序也能完美运行。剩下的参数就被丢弃了。
Lint 警告用于指示代码中可能出现的意外错误。但是,如果您知道自己在做什么,则可以通过将 @SuppressLint("StringFormatMatches")
注释添加到封闭方法或类来抑制警告。
关于android - 如何在 Android 中使用不同的参数为不同的语言格式化字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34910133/