GetQuantityString gibt falschen String mit 0-Wert zurück

In einer Android-App habe ich die folgenden String-Ressourcen:

<plurals name="test"> <item quantity="zero">"I have 0 item"</item> <item quantity="one">"I have 1 item"</item> <item quantity="other">"I have several items"</item> </plurals> 

Und die folgende Codezeile:

 String text = getResources().getQuantityString(R.plurals.test, 0) 

Was ich erwarten würde, zurückzukehren

Ich habe 0 Artikel

Aber es kommt eigentlich zurück

Ich habe 1 Stück

Warum ?

  • Android: wie man Kinder aus einem XML-Layout in eine benutzerdefinierte Ansicht hinzufügt
  • Fehler: kann die Variable abc_ic_ab_back_mtrl_am_alpha nicht finden
  • Wie man benutzerdefinierte Dimension Attribut aus Java-Code zu lesen
  • Einfachste Art zu wissen (programmgesteuert) welche Ressourcen-Ordner verwendet wird, basierend auf Bildschirmdichte / Größe
  • In einer Android-App, wann sind Ressourcen in den Speicher geladen?
  • GetResources () getColor () ist veraltet
  • FEHLER Keine Paketkennung, wenn Sie Wert für die Ressourcennummer erhalten
  • Override Layout xml aus Android Framework
  • 2 Solutions collect form web for “GetQuantityString gibt falschen String mit 0-Wert zurück”

    Anzahl Strings sind auf einigen Plattformen und Handys als das Problem Tracker gebrochen und diese Diskussion "Sollten Plurale und Mengenstränge verwendet werden" weist darauf hin. Es hängt von vielen Faktoren ab, die man nicht kontrollieren kann (dh Lokalisierung am Telefon).

    Eine Lösung kann sein, eine externe Bibliothek wie diese zu nehmen , die die gleiche Funktionalität mindet.

    Eine weitere Lösung ist in der Dokumentation von Pluralformen in android angegeben. Vermeiden Sie es und verwenden Sie "mengenneutrale" Formulierungen wie "Bücher: 1"

    Ändern Sie den Code so

     String text = getResources().getQuantityString(R.plurals.test, 0,0); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.