[英]Set date limit in DatePickerDialog android
我在活動中使用DatePickerDialog,
我想按用戶設置日期DatePickerDialog的限制。
他們選擇的日期不能超過當前日期。
我的DatePickerDialog Java代碼
edittodate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
edittodate.setText("");
final Calendar mcurrentDate=Calendar.getInstance();
int mYear=mcurrentDate.get(Calendar.YEAR);
int mMonth=mcurrentDate.get(Calendar.MONTH);
int mDay=mcurrentDate.get(Calendar.DAY_OF_MONTH);
final Date curDate= new Date();
DatePickerDialog mDatePicker=new DatePickerDialog(ViewChallan.this, new OnDateSetListener() {
public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
// TODO Auto-generated method stub
/* Your code to get date and time */
if(mcurrentDate.before(curDate))
{
Toast.makeText(context, "Invalid Date", Toast.LENGTH_LONG).show();
}
else
{
selectedmonth= selectedmonth+1;
edittodate.setText(selectedyear+"-"+selectedmonth+"-"+selectedday);
}
}
},mYear, mMonth, mDay);
mDatePicker.setTitle("Select date");
// this code below is not hiding calendar,stopping the application
if (Build.VERSION.SDK_INT >= 11) {
mDatePicker.getDatePicker().setCalendarViewShown(false);
}
mDatePicker.show();
}
});
請建議我如何設置日期限制
提前致謝
您可以使用setMinDate(long)
和setMaxDate(long)
方法。 兩者都可以在API級別11和更高級別上使用。 由於使用的是DatePickerDialog
,因此需要首先通過調用getDatePicker()
方法獲取基礎的DatePicker
。
dpdialog.getDatePicker().setMinDate(minDate);
dpdialog.getDatePicker().setmaxDate(maxDate);
來源: 在Android中的DatePickerDialog上設置限制?
編輯:
Date today = new Date();
Calendar c = Calendar.getInstance();
c.setTime(today);
c.add( Calendar.MONTH, -6 ) // Subtract 6 months
long minDate = c.getTime().getTime() // Twice!
僅為DatePickerDialog設置最小和最大日期是不夠的。 用戶可以單擊年份並選擇任何其他年份。
您還應該在DatePicker上設置年份范圍,如下所示:
datePicker.setYearRange(calendar.get(Calendar.YEAR), calendar.get(Calendar.YEAR) + 1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.