如何在Android中使用不同的参数格式化不同语言的字符串?

Thi*_*Roy 5 android

我有两个字符串资源.main\values中的第一个是英文,没有字符串参数:

<string name="example">Have a good day!</string>
Run Code Online (Sandbox Code Playgroud)

但是在法语中,在values-fr下,我们有一个不同的短语和一个参数,如下所示:

<string name="example">Bonne journée M. %1$s!</string>
Run Code Online (Sandbox Code Playgroud)

我该如何使用资源字符串格式化程序?这可行,但它似乎不正确(并且它会生成一个lint警告):

textView.setText(getString(R.string.example, name));
Run Code Online (Sandbox Code Playgroud)

lint警告是"StringFormatInvalid",描述是"格式字符串" example不是有效的格式字符串,因此不应传递给String.format"

Flo*_*ern 3

你的做法没有任何问题。即使参数太多,格式化程序也能完美运行。剩下的争论就被丢弃了。

Lint 警告用于指示代码中可能出现的意外错误。@SuppressLint("StringFormatMatches")但是,如果您知道自己在做什么,则可以通过将注释添加到封闭的方法或类来抑制警告。