有谁知道使用Android的默认数字选择器允许负数的简单方法吗?我知道是InputFilter禁止这样做的,但是有什么简便的方法可以覆盖而不重写整个窗口小部件?
最佳答案
一个更通用,更优雅的解决方案是使用NumberPicker.Formatter并在NumberPicker中仅使用正数。
例如,如果我想在[-50,50]中选择一个数字:
final int minValue = -50
final int maxValue = 50
NumberPicker numberPicker = new NumberPicker(myActivity);
numberPicker.setMinValue(0);
numberPicker.setMaxValue(maxValue - minValue);
numberPicker.setValue(myCurrentValue - minValue);
numberPicker.setFormatter(new NumberPicker.Formatter() {
@Override
public String format(int index) {
return Integer.toString(index + minValue);
}
});
然后取回所选值:
int myNewValue = numberPicker.getValue() + minValue
关于android - 如何创建一个负数选择器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14357520/