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

标签 android

我有两个字符串资源。 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/

相关文章:

android - 强制停止应用程序时接收推送通知。(Android)

android - 如何始终收听短信android

java - 将消息从服​​务器发送到 Android 应用程序

java - 如何在没有 XML 文件的情况下使屏幕可滚动?

android - 在 Android 操作系统上安装 Perl 模块

java - 单击后退按钮更改 BottomNavigationView 图标

java - 在appium中滑动后无法单击元素

android - Galaxy S2 上的 ANR TextureView(GPU 驱动程序问题?)

android - 使用 ViewPager 跨多个 TextViews/Fragments 拆分文本

android - 为什么摩托罗拉 Atrix 加载 mdpi-drawables?