我创建了一个自定义数字选择器,并使用layout inflater添加到布局中。 我想为数字选择器2,5,10设置三个值。通过使用 setMinValue(1),setMaxValue(3),它只设置1到3个默认数字。
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams
((int) RelativeLayout.LayoutParams.WRAP_CONTENT, (int) RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
np.setLayoutParams(params);
np.setMinValue(1);
np.setMaxValue(3);
np.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
np.setValue(2);
我想设置2,5,10,而不是设置1到3。 任何人都可以告诉我如何在数字选择器
中设置自定义值提前致谢:)
答案 0 :(得分:8)
感谢Mustanser指向正确方向的指针。重要的是要注意setDisplayedValues改为使用String数组,因此功能性答案是:
NumberPicker picker = new NumberPicker(this);
picker.setMinValue(1);
picker.setMaxValue(3);
picker.setDisplayedValues( new String[] { "2", "5", "10" } );
此外,确保正确解释picker.getValue()的结果非常重要,因为基础int值仍然从1到3运行:
int pick;
switch (picker.getValue()) {
case 1:
pick = 2;
break;
case 2:
pick = 5;
break;
case 3:
pick = 10;
break;
default:
//...
}
答案 1 :(得分:6)
尝试这样的事情希望它会帮助你
NumberPicker picker = new NumberPicker(this);
picker.setMinValue(1);
picker.setMaxValue(3);
picker.setDisplayedValues( new int[] { 2, 5, 10 } );