更改 NumberPicker 的显示值
Changing displayed values of NumberPicker
我想在用户更改 second NumberPicker 值时更改我的 first NumberPicker 当前值索引。我试过这段代码来实现:
weightPostfixNumberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker numberPicker, int oldValue, int newValue) {
switch (numberPicker.getValue()) {
case 0:
setNewValues(weightKgArray);
case 1:
setNewValues(weightLbArray);
}
}
}); //...
private void setNewValues(String[] values) {
weightNumberPicker.setDisplayedValues(null);
weightNumberPicker.setMinValue(0);
weightNumberPicker.setMaxValue(values.length-1);
weightNumberPicker.setWrapSelectorWheel(false);
weightNumberPicker.setDisplayedValues(values);
}
但它只工作一次,当我再次更改 weightPostfixNumberPicker 的当前值索引时,没有任何反应。我也尝试过不同的听众,但结果是一样的。我在这里做错了什么?提前致谢!
我的错是我忘记在每个案例后添加 break/return。添加 break
后,它就像一个魅力。
我想在用户更改 second NumberPicker 值时更改我的 first NumberPicker 当前值索引。我试过这段代码来实现:
weightPostfixNumberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker numberPicker, int oldValue, int newValue) {
switch (numberPicker.getValue()) {
case 0:
setNewValues(weightKgArray);
case 1:
setNewValues(weightLbArray);
}
}
}); //...
private void setNewValues(String[] values) {
weightNumberPicker.setDisplayedValues(null);
weightNumberPicker.setMinValue(0);
weightNumberPicker.setMaxValue(values.length-1);
weightNumberPicker.setWrapSelectorWheel(false);
weightNumberPicker.setDisplayedValues(values);
}
但它只工作一次,当我再次更改 weightPostfixNumberPicker 的当前值索引时,没有任何反应。我也尝试过不同的听众,但结果是一样的。我在这里做错了什么?提前致谢!
我的错是我忘记在每个案例后添加 break/return。添加 break
后,它就像一个魅力。