android - 使用复数以 ResourcesNotFoundException 结尾

标签 android resources plural

我正在尝试在我最新的 Android 项目 (SDK9) 中使用复数。它总是以 ResourcesNotFoundException 结束。但是资源就在那里——绝对是:

这是我的 strings.xml 的那一部分:

<plurals name="count_files">
  <item quantity="one">%d file</item>
  <item quantity="other">%d files</item>
  <item quantity="zero">%d files</item>
</plurals>

<plurals name="count_folders">
  <item quantity="one">%d folder</item>
  <item quantity="other">%d folders</item>
  <item quantity="zero">%d folders</item>
</plurals>

这是使用它的那部分:

textView.setText(
    getResources().getQuantityString(R.plurals.count_folders, countfolders, countfolders) 
    + ", " 
    + getResources().getQuantityString(R.plurals.count_files, countfiles, countfiles));

这是一个异常(exception):

android.content.res.Resources$NotFoundException:复数资源 ID #0x7f050001 quantity=0 item=other

我必须维护多达 15 种不同的语言,因此我需要本地化文本和复数形式。

知道我的代码有什么问题吗?

非常感谢。

最佳答案

Android 以这样一种方式实现复数,您需要考虑每个翻译以一致地要求每个复数项目。例如,如果您在 'es' 中声明了 'zero' 的复数形式,并且您还有一个 'fr' 文件,则还需要在 'fr' 文件中定义 'zero' 复数形式。

关于android - 使用复数以 ResourcesNotFoundException 结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6677716/

相关文章:

Java:复数首字母缩略词的命名约定

ios - 如何在 swift ios 中将常规字符串占位符添加到翻译的复数 .stringdict

Android 数据库 SQLite 自动增量不递增并且违反了主要约束

c# - 如何在 Android 的单声道上制作类似 evernote 的菜单

java - URI 与文件性能

c++ - 有任何论文探讨了可用于基于 C++ 的 COM 应用程序的性能问题和优化策略吗?

c# - Identity Server 4 与身份相关的范围请求,但没有 openid 范围

android - 你能解释一下这张图片上的元素吗

C#、本地化、资源和 MonoDevelop

c# - 如何在 ASP.NET MVC 中实现 "natural"url 方案路由表