Как показать календарь всего одного года с текущей даты в Android?
Я хочу, чтобы календарь показывал пользователю только одну дату года, а остальные будут отключены, поскольку в прошлом все работает нормально. Но теперь я хочу сделать так, чтобы пользователь мог выбрать только один год календаря с текущей даты. Вот мой код. предложи мне изменения.
textView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(DATE_DIALOG_ID);
}
});
protected Dialog onCreateDialog(int id) {
final Calendar now = Calendar.getInstance();
switch (id) {
case DATE_DIALOG_ID:
// set date picker as current date
DatePickerDialog _date = new DatePickerDialog(this, date,myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)){
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
if (year < now.get(Calendar.YEAR))
view.updateDate(myCalendar
.get(Calendar.YEAR), myCalendar
.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH));
if (monthOfYear < now.get(Calendar.MONTH) && year == now.get(Calendar.YEAR))
view.updateDate(myCalendar
.get(Calendar.YEAR), myCalendar
.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH));
if (dayOfMonth < now.get(Calendar.DAY_OF_MONTH) && year == now.get(Calendar.YEAR) &&
monthOfYear == now.get(Calendar.MONTH))
view.updateDate(myCalendar
.get(Calendar.YEAR), myCalendar
.get(Calendar.MONTH), myCalendar.get(Calendar.DAY_OF_MONTH));
}
};
return _date;
}
return null;
}
3 ответа
Получить текущую дату. затем увеличьте значение года на единицу. затем использовать функцию setMaxDate как установить максимальную дату в диалоге выбора даты в Android? вопрос показывает.
Использование setMinDate()
а также setMaxDate()
на DatePicker
, Вы можете получить к нему доступ из вашего DatePickerDialog
с getDatePicker()
(требуется уровень API 11).
http://developer.android.com/reference/android/widget/DatePicker.html
Попробуйте создать календарь, как показано ниже, вместо вызова Calender.getInstance();
Календарь minCal = новый GregorianCalendar(2013, Calendar.JANUARY, 1);