Например, я хочу, чтобы TimePicker отображал только время после текущего времени или в течение следующих 12 часов, как это сделать?Как установить диапазон для TimePickerDialog?
0
A
ответ
0
Посмотрите этот пример. В этом мире кода я контролирую дату max и min. Возможно, вы можете изменить этот код, чтобы контролировать максимальное и минимальное время (а не дату). Я думаю, что у вас не будет слишком много проблем с изменением этого кода.
Для версии Android выше на Honeycom мы можем использовать метод setMinDate(). Для более старых версий мы контролируем max и min, когда пользователь пытается изменить дату.
// 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...");
}
спасибо, но мне кажется, что этот метод работает не очень хорошо, в конце концов я пишу новый wigdet осуществить это .. – KarelCF
цитирование * «в конце концов я пишу новый wigdet для реализации этого» * комментарий о @KarelCF. если у вас есть рабочий код сейчас, можете ли вы опубликовать его? так что другие могут найти это полезным –