0

我的应用程序有一个 0 - 120 分钟的选择器。我想像这样显示时间:“In ... minutes”。

我找到了该方法DateUtils#getRelativeTimeSpanString(long, long, long),它适用于 60 分钟以下的值。但是,如果该值为 60 分钟或更高,则将其显示为“ 1 小时内”而不是“ 120 分钟内”。

这是我正在使用的代码:

int minutes = 70;
long millis = minutes * 60 * 1000;
String text = DateUtils.getRelativeTimeSpanString(millis, 0L, DateUtils.MINUTE_IN_MILLIS);
myTextView.setText(text); // Displays "In 1 hour" instead of "In 70 minutes".

如何强制输出在几分钟内?

4

1 回答 1

0

根据评论,您可以使用字符串资源。首先,创建一个复数资源,同时支持“In 1 minute”和“In 2 minutes”:

<plurals name="time_remaining_in_minutes">
        <item quantity="one">In %1$d minute</item>
        <item quantity="other">In %1$d minutes</item>
</plurals>

然后,在您的代码中调用它:

int minutes = 70;
long millis = minutes * 60 * 1000;
String text = getResources.getQuantityString(R.plurals.time_remaining_in_minutes, minutes, minutes);
myTextView.setText(text);
于 2017-10-16T15:32:12.480 回答