我有 3900 个号码范围,用户可以NumberPicker
从中选择一个号码。现在,当长按选择器中的向上/向下箭头时,数字会缓慢增加/减少。我已经坐到了setOnLongPressUpdateInterval()
0 毫秒,但在这么大的数字范围内它仍然缓慢增加。
长按向上/向下箭头时是否可以更改选择器中的增量,以便将数字增加 100,并在释放按钮时返回增量 1?
我有 3900 个号码范围,用户可以NumberPicker
从中选择一个号码。现在,当长按选择器中的向上/向下箭头时,数字会缓慢增加/减少。我已经坐到了setOnLongPressUpdateInterval()
0 毫秒,但在这么大的数字范围内它仍然缓慢增加。
长按向上/向下箭头时是否可以更改选择器中的增量,以便将数字增加 100,并在释放按钮时返回增量 1?
我采用了这种方法,因为困住长按的工作似乎令人担忧。
NumberPicker _picker;
long _tsLastChange;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.number_picker);
_picker = (NumberPicker) findViewById(R.id.picker);
_picker.setMinValue(1);
_picker.setMaxValue(3900);
_picker.setOnLongPressUpdateInterval(100);
_picker.setOnValueChangedListener(new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
Log.d("NumberPickerActivity", "value changed detected");
long tsChange = System.currentTimeMillis();
if (tsChange - _tsLastChange < 200)
{
if (newVal > oldVal)
_picker.setValue(newVal + 100);
else
_picker.setValue(newVal - 100);
}
_tsLastChange = tsChange;
}
});
}
要使其在 IRL 中起作用,您可能希望 (a) 将“newVal”四舍五入到最接近的 100 或其他值,并且 (b) 比我更担心环绕案例。
令我有些惊讶的是,程序化setValue
似乎不会导致onValueChangedListener
.
NumberPicker
我使用“Theme.Black”主题在 4.1 模拟器上对此进行了测试,以获得带有 +/- 按钮的“老式” 。