我有两个字符串资源.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"
你的做法没有任何问题。即使参数太多,格式化程序也能完美运行。剩下的争论就被丢弃了。
Lint 警告用于指示代码中可能出现的意外错误。@SuppressLint("StringFormatMatches")但是,如果您知道自己在做什么,则可以通过将注释添加到封闭的方法或类来抑制警告。
| 归档时间: |
|
| 查看次数: |
2045 次 |
| 最近记录: |