2017-10-16 7 views
0

Mon application dispose d'un sélecteur de 0 à 120 minutes. Je veux afficher l'heure comme ceci: "Dans ... minutes".Comment forcer des minutes dans DateUtils # getRelativeTimeSpanString (long, long, long)?

J'ai trouvé la méthode DateUtils#getRelativeTimeSpanString(long, long, long) et cela fonctionne correctement pour les valeurs inférieures à 60 minutes. Cependant, si la valeur est 60 minutes ou plus, il l'affiche comme "en 1 heure" au lieu de "en 120 minutes".

Voici le code que je utilise:

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

Comment puis-je forcer la sortie en minutes? En fonction des commentaires, vous pouvez utiliser une ressource de type chaîne.

+0

Vous pouvez également essayer d'utiliser un ressource de chaîne et calculer les minutes pour réaliser ce que vous voulez. –

+0

Eh bien, il y a peut-être un moyen de le faire avec java, mais pourquoi utiliser 'getRelativeTimeSpanString' alors que vous avez déjà des minutes? – Ibrahim

+0

@GabrielCosta Je voudrais utiliser les chaînes Android par défaut si possible, car elles sont déjà traduites. –

Répondre

0

Tout d'abord, créer une ressource plurielle, pour soutenir à la fois « en 1 minute » et « en 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> 

Ensuite, appelez à l'intérieur de votre code:

int minutes = 70; 
long millis = minutes * 60 * 1000; 
String text = getResources.getQuantityString(R.plurals.time_remaining_in_minutes, minutes, minutes); 
myTextView.setText(text); 
+0

Je sais que c'est possible, mais comme j'ai répondu à votre commenter, je veux utiliser les chaînes Android par défaut. (Ils sont déjà traduits dans de nombreuses langues). –

+0

Désolé, j'ai mal compris votre réponse. Je pensais que vous vouliez dire que les ressources de chaînes étaient des chaînes Android. Eh bien, si cela vaut la peine, vous pouvez créer des fichiers strings.xml pour d'autres langues (manuellement). –