2016-08-16 46 views
2

我使用数量字符串显示在多个选择器是在我定制对话框选择的值。
由于我的号码选取器是我想要执行某个活动的小时数和分钟数,因此所选值将出现在选取器下方的文本视图中。获取QuantityStrings挑上零

在小时选择器,当我选择最初,它反应为用于“”值XML文件中定义的,但是随后,将具有选择的其他值的时间后,再我选择时间,它将我的选择视为“其他”,而不是“”。请指教!

我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; 
     } 
    } 

回答

1

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

其中串的选择使用完全是基于语法的必要性。在英语中,即使数量为0,零的字符串也将被忽略,因为0在语法上不同于2,或除1之外的任何其他数字(“零书本”,“一本书”,“两本书”和等等)。相反,在朝鲜语中,只有另一个字符串会被使用。

不要被这样一个事实所误导,比如说两个声音只能用于数量2:一种语言可能需要2,12,102等(所有)都被视为彼此但与其他数量不同。依靠您的翻译员了解他们的语言实际上坚持了哪些区别。

+0

如果只是基于语法的必要性,为什么最初识别零? –

+0

我的错误,最初从未识别“零”,我删除了“零”行并得到了相同的结果。 –