2017-05-09 63 views
1

我正在使用DatePickerDialog,如下所示。 我想限制顯示的日期,以便用戶不能在今天之後選擇日期,但可以選擇過去的任何日期。我該怎麼做呢?datePickerDialog如何設置顯示日期?

final DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() { 
     @Override 
     public void onDateSet(DatePicker datePicker, int i, int i1, int i2) { 
      mMissedStampDate = new DateTime().withDate(i, i1, i2); 
      textView.setText(mMissedStampDate.toString("yyyy-MM-dd")); 
     } 
    }; 

    final DatePickerDialog datePickerDialog = new DatePickerDialog(mActivity, onDateSetListener, mMissedStampDate.getYear(), mMissedStampDate.getMonthOfYear(), mMissedStampDate.getDayOfMonth()); 

    textView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      datePickerDialog.show(); 
     } 
    }); 
+1

嘗試此鏈接http://stackoverflow.com/questions/17878751/how-to-disable-dates-before-today-date-in-datepickerdialog-android –

回答

1

嘗試

final DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker datePicker, int i, int i1, int i2) { 
     mMissedStampDate = new DateTime().withDate(i, i1, i2); 
     textView.setText(mMissedStampDate.toString("yyyy-MM-dd")); 
    } 
}; 

final DatePickerDialog datePickerDialog = new DatePickerDialog(mActivity, onDateSetListener, mMissedStampDate.getYear(), mMissedStampDate.getMonthOfYear(), mMissedStampDate.getDayOfMonth()); 

datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis()); 

textView.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     datePickerDialog.show(); 
    } 
}); 

使用setMinDate & setMaxDate

正式文件: https://developer.android.com/reference/android/widget/DatePicker.html

2
DatePickerDialog dialog = new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay); 
dialog.getDatePicker().setMaxDate(new Date().getTime()); 
1

DatePickerDialoggetDatePicker()方法。將max date設置爲current datesetMaxDate()

mDatePicker.getDatePicker().setMaxDate(System.currentTimeMillis()); 
相關問題