2013-02-22 1 views
2

Это мой код выбора даты. Я хочу отключить выбор даты в диалоговом окне выбора даты.Отключить будущий выбор даты в datepicker

Может ли кто-нибудь предложить, как?

@Override 
protected Dialog onCreateDialog(int id) 
{ 
    // TODO Auto-generated method stub 
    switch(id) 
    { 
     case 1: 
      Calendar cal=Calendar.getInstance(); 
      Toast.makeText(DateActivity.this, "- onCreateDialog -", Toast.LENGTH_LONG).show(); 
      return new DatePickerDialog(this,myDateSetListener,cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1, cal.get(Calendar.DAY_OF_YEAR)); 

     default: 
      return null; 
    } 
} 

private DatePickerDialog.OnDateSetListener myDateSetListener = new DatePickerDialog.OnDateSetListener() 
{ 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) 
    { 
     // TODO Auto-generated method stub 
     String date = "Year: " + String.valueOf(year) + "\n" 
        + "Month: " + String.valueOf(monthOfYear+1) + "\n" 
        + "Day: " + String.valueOf(dayOfMonth); 

     Toast.makeText(DateActivity.this, date,Toast.LENGTH_LONG).show(); 
    } 
}; 

ответ

1

OnDateChangedListener Установите на ваш DateTimePicker, где в чеке

onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) 

если дата в вашем допустимом диапазоне, и если нет, вызовите view.updateDate с максимальной разрешенной даты.

+0

Спасибо за помощь Axarydax –

1

Пут по этому методу внутри на onCreateDialog, решить эту проблему для будущей даты должна быть не отбор на дату захватывающего dailog,

@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case DATE_DIALOG_ID: 
     DatePickerDialog mDatePickerDialog = new DatePickerDialog(this, mDateSetListener, intYear, intMonth, intDay); 
     mDatePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis()); // Important as Future date not selection 
     return mDatePickerDialog; 
    } 
    return null; 
} 
-1

yourdatepicker.getDatePicker() setMaxDate (System.currentTimeMillis()).

+1

Это действительно повторение [этого существующего ответа] (http://stackoverflow.com/questions/15020729//22317275#22317275). – Pang