How to create a negative NumberPicker

前端 未结 4 772
花落未央
花落未央 2020-12-11 03:35

Does anyone know of an easy way to allow negative numbers with Android\'s default numberpicker? I understand that it\'s the InputFilter that disallows this, but is there an

4条回答
  •  無奈伤痛
    2020-12-11 04:02

    A more generic and elegant solution is to use NumberPicker.Formatter and use only positive numbers in the NumberPicker.

    Example if I want to select a number in [-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);
        }
    });
    

    then to get back the selected value:

    int myNewValue = numberPicker.getValue() + minValue
    

提交回复
热议问题