我使用带负数的NumberPicker:
int maxValue = 50;
int minValue = -20;
NumberPicker np = (NumberPicker) findViewById(R.id.numberPicker);
np.setDisplayedValues(null);
np.setMinValue(0);
np.setMaxValue(maxValue - minValue);
np.setValue(Math.abs(minValue)); // start from 0
np.setWrapSelectorWheel(false);
np.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
String[] values = new String[maxValue - minValue];
int key = 0;
for (int i = minValue; i < maxValue; i++) {
values[key] = String.valueOf(i);
key++;
}
np.setDisplayedValues(values);
当我点击选择值时: -1然后在-1处显示-19 在-2是-20 在-3是好的。
为什么?首先点击价值:bad display 再次点击价值:good display
我没有任何处理程序。
解决:
values[key] = String.valueOf(i) + " ";
答案 0 :(得分:0)
您正在阅读NumberPicker
的值,但这些值与您的displayValues
不一致。您需要将“真实”值[0-70]映射回displayValues
[-20-50]。