如何设置TimePickerDialog的范围?

时间:2013-09-16 07:30:32

标签: android timepicker

例如,我希望TimePicker只显示当前时间之后或接下来的12个小时内的时间,该怎么做?

1 个答案:

答案 0 :(得分:0)

看看这个例子。在这个代码的和平中,我正在控制最大和最小日期。也许你可以修改这段代码来控制最大和最小时间(不是日期)。我认为修改此代码不会有太多问题。

对于Honeycom上面的Android版本,我们可以使用方法setMinDate()。对于旧版本,我们在用户尝试修改日期时控制最大值和最小值。

// Calendar
this.calendar = new GregorianCalendar();
this.datePicker = (DatePicker) findViewById(R.id.xxxxx);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    // (picker is a DatePicker)
    this.datePicker.setMinDate(this.calendar.getTimeInMillis());
} else {
    final int minYear = this.calendar.get(Calendar.YEAR);
    final int minMonth = this.calendar.get(Calendar.MONTH);
    final int minDay = this.calendar.get(Calendar.DAY_OF_MONTH);

    this.datePicker.init(minYear, minMonth, minDay,
        new OnDateChangedListener() {

            public void onDateChanged(DatePicker view, int year,
                    int month, int day) {
                Calendar newDate = Calendar.getInstance();
                newDate.set(year, month, day);

                if (calendar.after(newDate)) {
                    view.init(minYear, minMonth, minDay, this);
                }
            }
        });
   Log.w(TAG, "API Level < 11 so not restricting date range...");
}