如何在android

时间:2017-04-10 07:49:17

标签: android xml plural

我想知道是否有任何简单的方法来基于格式化整数 使用android中的复数资源机制为负,零和正?

我想要的答案是

  • 如果getRemaining()< -1然后" | getRemaining()|几天前"
  • 如果getRemaining()== -1则" | getRemaining()|前一天"
  • 如果getRemaining()== 0则" getRemaining()剩余天数"
  • 如果getRemaining()== 1则" getRemaining()剩余日期"
  • if getRemaining()> 1然后" getRemaining()剩余天数"

现在我通过代码

实现这一目标
if (item.getRemaining() > -1) {
        holder.remainingTV.setText(res.getQuantityString(R.plurals.plural_remaining, item.getRemaining(),
            item.getRemaining()));
} else {
        holder.remainingTV.setText(res.getQuantityString(R.plurals.plural_ago, -item.getRemaining(), -item.getRemaining()));
}

我的资源看起来像这样

<plurals name="plural_remaining">
    <item quantity="one">%d Day Remaining</item>
    <item quantity="other">%d Days Remaining</item>
</plurals>

<plurals name="plural_ago">
    <item quantity="one">%d Day Ago</item>
    <item quantity="other">%d Days Ago</item>
</plurals>

如何在不必根据Android中的-ve和+ ve编号拆分它们的情况下实现上述解决方案?

1 个答案:

答案 0 :(得分:0)

您可以像这样(在Kotlin中)或Math.abs(在Java中)将数量的绝对值用于getQuantityString中:

getQuantityString(
   R.plurals.a_plural,
   quantityValue.absoluteValue,
   quantityValue
)

它将处理:-1、0、1和其他值