【问题标题】:How do I get the value of setFormatter using numberPicker?如何使用 numberPicker 获取 setFormatter 的值?
【发布时间】:2019-10-18 20:12:11
【问题描述】:

我使用 numberPicker 并在我的 numberPicker 中找到了显示 00、01、02... 的答案,我使用了 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。

【问题讨论】:

  • 我发现你的代码有问题
  • 太棒了!我猜?告诉我更多:)

标签: java android numberpicker


【解决方案1】:

对不起,我的评论不好,所以代码看起来像这样:

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);

        }
    });

【讨论】:

  • 非常感谢!即使如此,我认为它有点可疑,我设置了一个格式化程序以显示在手机上,并且一个(如您上面的答案)在 getValue() 前面添加一个 0。无论如何,它有效并且帮助了我很多。再次Tnx!
猜你喜欢
  • 2011-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-10
  • 2020-08-28
  • 2013-10-25
  • 1970-01-01
  • 2015-08-08
相关资源
最近更新 更多