Still able to select disabled dates in date picker

后端 未结 4 1962
暖寄归人
暖寄归人 2020-12-16 18:31

I want to disable the past dates of date picker in android. i can do it by using

dialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
         


        
4条回答
  •  生来不讨喜
    2020-12-16 19:27

    To resolve bug for Android Lollipop you can validate date as below:

        int mYear,mMonth,mDay;
        Calendar mcurrentDate = Calendar.getInstance();
        mYear = mcurrentDate.get(Calendar.YEAR);
        mMonth = mcurrentDate.get(Calendar.MONTH);
        mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);
    
    
        DatePickerDialog mDatePicker = new DatePickerDialog(context, new DatePickerDialog.OnDateSetListener() {
            public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
            // TODO Auto-generated method stub
    
            // validate here with condition to avoid to select past dates 
                if (selectedyear == mYear && (selectedmonth+1) == mMonth+1) {
                    if(selectedday < mDay){
                        Toast.makeText(context, "invalid date", Toast.LENGTH_LONG).show();
                        return;
                    }
                }
    
    
                    textview.setText(selectedday + "/" + (selectedmonth+1) + "/" + selectedyear);
    
            }
        }, mYear, mMonth, mDay);
    
        mDatePicker.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
        if(!mDatePicker.isShowing()){
            mDatePicker.show();
        }
    

提交回复
热议问题