Как получить значение setFormatter с помощью numberPicker? - PullRequest
3 голосов
/ 03 июня 2019

Я использую NumberPicker и нашел ответ для отображения 00, 01, 02 ... в моем NumberPicker, я использовал setFormatter.Проблема в том, что когда я вызываю getValue (), я получаю 0, 1, 2 ... Мне нужно получить 00, 01, 02 ..., чтобы я мог отобразить его в виде текста в другом представлении.Есть ли способ сделать это?С или без setFormatter.

Я искал в Интернете и проверил, есть ли у кого-то еще такая же проблема, но ничего не смог найти :(. Также подумал об использовании timePicker / datePicker, но затем я столкнулся с теми же проблемами.

numberPickerLeftHours.setMinValue(0);
numberPickerLeftHours.setMaxValue(23);

//Put a extra 0 in front of single numbers.
numberPickerLeftHours.setFormatter(new NumberPicker.Formatter() {
     @SuppressLint("DefaultLocale")
     @Override
     public String format(int value) {
           Log.i(TAG, "onCreate: numberPickerLeftHours.getValue(): " + numberPickerLeftHours.getValue());
           return String.format("%02d", value);
     }
});

Итак, мой Log.i (); значение 0, 1, 2 ... но мне нужно 00, 01 ... 09, 10, 11, 12 до 23.

1 Ответ

2 голосов
/ 03 июня 2019

Извините за плохой комментарий, поэтому код будет выглядеть примерно так:

numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
        @Override
        public void onValueChange(NumberPicker numberPicker, int i, int i1) {
            String formated = String.format("%02d", numberPicker.getValue());
            Log.d("PickerValue", formated);
            yourTextView.setText(formated);

        }
    });
...