我将显示类似此示例的文本:“ 0/2文档” 我正在尝试使用:
<plurals name="documents_get">
<item quantity="one">%1d/%2d doucment</item>
<item quantity="other">%1d/%2d documents</item>
</plurals>
resources.getQuantityString(
R.plurals.documents_get,
docCount,
documents.filter {
it.retrieved_at != null
}.count(),
docCount)
我的问题是结果是:0/ 2 documents
而不是“ 0/2 document”。问题是“ /”后的空格。
您知道解决方案吗?
预先感谢
答案 0 :(得分:1)
问题是您使用的格式(%2d
)。因此,将您的复数更改为此:
<plurals name="documents_get">
<item quantity="one">%d/%d doucment</item>
<item quantity="other">%d/%d documents</item>
</plurals>
使用String.format
String s1 = String.format("%d/%d document", 0, 1); // s1: "0/1 document"
String s2 = String.format("%d/%2d document", 0, 1); // s2: "0/ 1 document"
修改
正如@Kingfisher Phuoc所指出的,它应该是%1$d/%2$d
而不是%d
。 $符号允许您指定字符串的索引(应该在该位置打印字符串,称为“显式参数索引”或“位置参数”。您可以阅读更多here)。
例如:
String s1 = String.format("%1$d/%2$d", 1, 2); // s1: "1/2"
String s2 = String.format("%2$d/%1$d", 1, 2); // s2: "2/1"
答案 1 :(得分:0)
删除(%2d)并替换为(%d),或者可以使用字符串格式
String resource = String.format("%d/%d document", 0, 1); // s1: "0/1 document"
答案 2 :(得分:-2)
您可以像这样
在string.xml中定义您的字符串<resources>
<string name="string">0"/"2 documents</string>
</resources>
并通过getResources.getString方法获取它。
注意:特殊字符用双引号引起来。