2016-08-16 3 views
2

Ich bin mit Menge Strings die Werte in Anzahl Pickers, die in meinem benutzerdefinierten Dialog sind ausgewählt angezeigt werden soll.
Da meine Nummer Picker sind die Stunden und Minuten, die ich eine bestimmte Aktivität machen möchten, erscheinen die gewählten Werte in einem Textansicht unter den Pflückern.Erste QuantityStrings auf Zeros abholen

Auf der Stunde Picker, wenn ich zunächst wählen, reagiert es wie in der XML-Datei für einen „Null“ Wert definiert, aber anschließend nach für die Stunden andere Werte gewählt zu haben, und dann Ich wähle für die Stunden, behandelt es meine Wahl als "andere", nicht als "Null". Bitte beraten!

Meine res/Werte/strings.xml sich wie folgt:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <plurals name="hour_picker"> 
     <item quantity="zero">"You want to walk for "</item> 
     <item quantity="one">"You want to walk for %1$d hour and "</item> 
     <item quantity="other">"You want to walk for %1$d hours and "</item> 
    </plurals> 
    <plurals name="minute_picker"> 
     <item quantity="one"> %1$d minute</item> 
     <item quantity="other"> %1$d minutes</item> 
    </plurals> 
</resources> 

Die .java-Datei ist wie folgt:

public class SelectDurationDialogFragment extends DialogFragment implements NumberPicker.OnValueChangeListener { 

    NumberPicker hour_picker,minute_picker; 
    TextView hour_txt,minute_txt; 
... 
@Override 
    public void onValueChange(NumberPicker numberPicker, int i, int i1) { 

     switch (numberPicker.getId()){ 
      case R.id.numberPicker1: 
       hour_txt.setText(String.format(getResources().getQuantityString((R.plurals.hour_picker),i1),i1)); 
       break; 
      case R.id.numberPicker2: 
       minute_txt.setText(String.format(getResources().getQuantityString((R.plurals.minute_picker),i1),i1)); 
       break; 
     } 
    } 

Antwort

1

Von http://developer.android.com/guide/topics/resources/string-resource.html#Plurals:

Die Auswahl, welche Zeichenfolge Die Verwendung erfolgt ausschließlich aufgrund der grammatikalischen Notwendigkeit. Im Englischen wird eine Zeichenkette für Null ignoriert, auch wenn die Menge 0 ist, weil 0 nicht grammatikalisch anders als 2 ist oder irgendeine andere Zahl außer 1 ("Bücher null", "ein Buch", "zwei Bücher" und bald). Umgekehrt wird auf Koreanisch immer nur die andere Saite verwendet.

Lassen Sie sich auch nicht durch die Tatsache täuschen, dass beispielsweise zwei Laute nur für die Menge 2 gelten könnten: eine Sprache könnte erfordern, dass 2, 12, 102 (und so weiter) alle wie einander behandelt werden aber anders als andere Mengen. Verlassen Sie sich auf Ihren Übersetzer, um zu wissen, auf welche Unterschiede ihre Sprache wirklich besteht.

+0

Wenn es nur auf grammatikalischen Notwendigkeit basiert, warum hat es Null zunächst erkannt? –

+0

Mein Fehler, es wurde nie "Null" zunächst erkannt, löschte ich die "Null" -Linie und bekam das gleiche Ergebnis. –