我正在使用数量字符串来显示自定义对话框中数字选择器中选择的值。
由于我的号码选择器是我想要执行特定活动的小时和分钟,因此所选值会显示在选择器下方的 textview 中。
在小时选择器上,当我最初选择 0 时,它会按照 XML文件中的定义对“零”值做出反应,但随后,在为小时选择了其他值之后,然后我选择 0 作为小时,它将我的选择视为“其他”,而不是“零”。请指教!
我的res / values / 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;
}
}
答案 0 :(得分:1)
来自http://developer.android.com/guide/topics/resources/string-resource.html#Plurals:
选择使用哪个字符串完全基于语法必要性。在英语中,即使数量为0,也会忽略零字符串,因为0在语法上与2不同,或者除了1之外的任何其他数字(&#34;零书&#34;,&#34;一本书&#34;,&#34;两本书&#34;等等)。相反,在韩语中只会使用其他字符串。
不要被这样的事实误导,比如,两个声音只能适用于数量2:一种语言可能要求2,12,102(等等)都被视为一个另一个但与其他数量不同。依靠你的翻译来了解他们的语言实际上坚持的区别。