にピックアップして取得私は私のカスタムダイアログである番号ピッカーで選択された値を表示するには、数量文字列を使用しています。
番号ピッカーは特定のアクティビティを実行する時間と分であるため、選択した値はピッカーの下のテキストビューに表示されます。時間ピッカーではQuantityStringsがゼロ
、私が最初にを選択すると、それは「ゼロ」のXMLファイルで定義された値として反応するが、その後、時間の他の値を選択した後、その後、私はを選択します。それは "other"と表示され、 "ゼロ"ではありません。お知らせ下さい!
次のように私のres /値/のstrings.xmlは次のように
<?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>
.javaファイルは次のとおりです。
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;
}
}
文法上の必要性にのみ基づいていたのであれば、最初にゼロを認識したのはなぜですか? –
私の間違いは、最初は「ゼロ」と認識されず、「ゼロ」行を削除して同じ結果を得ました。 –