【问题标题】:Set TimePickerDialog to use 15 minute intervals将 TimePickerDialog 设置为使用 15 分钟间隔
【发布时间】:2012-09-05 12:56:42
【问题描述】:

如何将 Android TimePickerDialog 设置为使用 15 分钟间隔?

我需要以编程方式创建选择器,如下所示,因此涉及 XML 中的时间选择器的解决方案(例如这里:Android - TimePicker minutes to 15)将不起作用。

new TimePickerDialog(getActivity(), t, hour,minute, false).show();

问题是在创建时间选择器时似乎无法为TimePicker .setOnTimeChangedListener() 传递新函数。

是否可以使用新的 TimePIckerDialog 构造函数并使用 15 分钟间隔?

【问题讨论】:

    标签: java android android-layout


    【解决方案1】:

    所有相关答案都需要您设置一个 OnTimeChangedListener。我的解决方案是你扩展android TimePicker,并修改它的构造函数:

    // minute
    mMinuteSpinner = (NumberPicker) findViewById(R.id.minute);
    mMinuteSpinner.setMinValue(0);
    mMinuteSpinner.setMaxValue(3);
    mMinuteSpinner.setDisplayedValues(new String[]{"0", "15", "30", "45"});
    mMinuteSpinner.setOnLongPressUpdateInterval(100);
    mMinuteSpinner.setFormatter(NumberPicker.getTwoDigitFormatter());
    

    所以你可以有你想要的间隔。

    【讨论】:

    • 这是23到28的作品吗?我只想在时钟模式下显示。
    【解决方案2】:

    重写 onTimeChanged 方法

    TimePickerDialog timePickerDialog = new TimePickerDialog(this, listener, 1, 1, true) {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                ...
            }
    };
    
    timePickerDialog.show();
    

    【讨论】:

    • TimePickerDialog没有setOnTimeChangedListener方法
    • 我相信我们需要重写 OnTimeChangedListener,而不是 OnTimeSetListener。
    【解决方案3】:

    从这篇文章和其他帖子中收集部分解决方案,我相信解决方案 here 勾选了所有用于显示 TimePickerDialog 的框,并在 NumberPicker 中显示了自定义分钟增量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-31
      • 2012-11-18
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 2012-04-06
      • 2022-01-25
      • 2022-01-07
      相关资源
      最近更新 更多