2017-10-16 17 views
0

私のアプリには0〜120分のピッカーがあります。私はこのような時間を "In ... minutes"と表示したい。DateUtilsで分を強制する方法#getRelativeTimeSpanString(long、long、long)?

私は方法DateUtils#getRelativeTimeSpanString(long, long, long)を見つけました、そして、それは60分未満の値のために正しく働きます。ただし、値が60分以上の場合は、「In 120 minutes」ではなく、「In 1 hour」と表示されます。

これは私が使用しているコードです:

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". 

どのように私は数分であることを出力を強制することができますか?

+0

また、使用しようとすることができますあなたが望むものを達成するための分を計算します。 –

+0

さて、Javaでこれを行う方法があるかもしれませんが、分を持っている間に 'getRelativeTimeSpanString'を使うのはなぜですか? – Ibrahim

+0

@GabrielCostaすでに翻訳されているので、可能であればデフォルトのAndroid文字列を使用したいと考えています。 –

答えて

0

コメントに基づいて、文字列リソースを使用できます。まず、両方とも「1では分」と「2分では、」サポートするために、複数のリソースを作成します。

<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); 
+0

これは可能ですが、私があなたに返信したときコメント、私はデフォルトのAndroidの文字列を使用したい。 (彼らはすでに多くの言語で翻訳されています)。 –

+0

申し訳ありませんが、私はあなたの答えを誤解しました。私は、文字列リソースがAndroid文字列であることを意味していると思いました。もしそれが価値があれば、他の言語用のstrings.xmlファイルを(手動で)作成することができます。 –

関連する問題