date button on clcik method
dateButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog(DATE_DIALOG_ID);
}
});
for date piker create dialog method :
case DATE_DIALOG_ID:
{
Calendar calendar = Calendar.getInstance();
final DatePickerDialog dojDPDilog = new DatePickerDialog(this,datePickerListener,calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE));
dojDPDilog.setTitle("Select Date");
try {
java.lang.reflect.Field mDatePickerField = dojDPDilog.getClass().getDeclaredField("mDatePicker");
mDatePickerField.setAccessible(true);
try {
dojDPicker = (DatePicker) mDatePickerField.get(dojDPDilog);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
dojDPicker.init(minYear, minMonth, minDay,new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year,int monthOfYear, int dayOfMonth) {
disableDate(view, year, monthOfYear, dayOfMonth);
}
});
return dojDPDilog;
}
for disable method:
private void disableDate(DatePicker view, int year,int monthOfYear, int dayOfMonth) {
if (year > maxYear)
{
view.updateDate(maxYear, maxMonth, maxDay);
}
else if (monthOfYear > maxMonth && year == maxYear)
{
view.updateDate(maxYear, maxMonth, maxDay);
}
else if (dayOfMonth > maxDay && year == maxYear && monthOfYear == maxMonth)
{
view.updateDate(maxYear, maxMonth, maxDay);
}
else if (year < minYear)
{
view.updateDate(minYear, monthOfYear, dayOfMonth);
}
else if (monthOfYear < minMonth && year == minYear)
{
view.updateDate(minYear, minMonth, dayOfMonth);
}
else if (dayOfMonth < minDay && year == minYear && monthOfYear == minMonth)
{
view.updateDate(minYear, minMonth, minDay);
}
}
and take local variables:
int maxYear = c.get(Calendar.YEAR) + 100;
int maxMonth = c.get(Calendar.MONTH);
int maxDay = c.get(Calendar.DAY_OF_MONTH);
int minYear = c.get(Calendar.YEAR);
int minMonth = c.get(Calendar.MONTH);
int minDay = c.get(Calendar.DAY_OF_MONTH);