簡體   English   中英

在DatePickerDialog Android中設置日期限制

[英]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!  

來源: java.util.Date-從日期刪除三個月?

僅為DatePickerDialog設置最小和最大日期是不夠的。 用戶可以單擊年份並選擇任何其他年份。

您還應該在DatePicker上設置年份范圍,如下所示:

datePicker.setYearRange(calendar.get(Calendar.YEAR), calendar.get(Calendar.YEAR) + 1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM