2013-02-22 52 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

設置一個OnDateChangedListenerDateTimePicker,其中

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

檢查日期是否是在允許的範圍內,如果沒有,請致電view.updateDate你允許的日期。

+0

感謝您的幫助Axarydax – 2013-05-08 07:34:29

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 2016-05-11 07:42:48

相關問題