Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android的复数资源中表示负数_Android_Xml_Plural - Fatal编程技术网

如何在android的复数资源中表示负数

如何在android的复数资源中表示负数,android,xml,plural,Android,Xml,Plural,我想知道是否有任何简单的方法可以根据 在安卓系统中使用多元资源机制的消极、零和积极 我想要的答案是 如果GetRestaining()1,则“GetLeveling()剩余天数” 现在,我通过以下代码实现这一点 if (item.getRemaining() > -1) { holder.remainingTV.setText(res.getQuantityString(R.plurals.plural_remaining, item.getRemaining(),

我想知道是否有任何简单的方法可以根据 在安卓系统中使用多元资源机制的消极、零和积极

我想要的答案是

  • 如果GetRestaining()<-1,则“GetRestaining()|天之前”
  • 如果GetRestaining()==-1,则“| GetRestaining()|前一天”
  • 如果GetLeveling()==0,则“GetLeveling()剩余天数”
  • 如果GetLeveling()==1,则“GetLeveling()剩余天数”
  • 如果GetLeveling()>1,则“GetLeveling()剩余天数”
现在,我通过以下代码实现这一点

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>

%d剩余天数
%d剩余天数
%一天前
%d天前

如何实现上述解决方案,而不必在android中基于-ve和+ve数字进行拆分?

您可以将数量的绝对值用在getQuantityString中,如下所示(在Kotlin中)或Math.abs(在Java中):

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

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