如何限制 select 出生日期 android 21 岁以下的用户

how to restrict user to select date of birth who is under 21 years in android

我正在使用 DatePickerDialog select birth.How 的用户日期,以将用户限制为 select 从当前日期起未满 21 岁的出生日期。

例如:出生日期在14/6/1996之后的用户应该限制在selecting

这是我的代码,

 Date today = new Date();
        Calendar c = Calendar.getInstance();
        c.setTime(today);
        c.add( Calendar.YEAR, -21 );
        minDate= c.getTime().getTime();
        Log.v(Constants.TAG, "selecteddsdf " + minDate);

   public void showDatePickerDialog(View v) {

    datePickerDialog = new DatePickerDialog(v.getContext(), new DatePickerDialog.OnDateSetListener() {

        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {


            datePickerDialog.getDatePicker().setMinDate(minDate);

            Calendar newDate = Calendar.getInstance();
            newDate.set(year, monthOfYear, dayOfMonth);
            txtDOB.setText(dateFormatter.format(newDate.getTime()));
            uDOB = dateFormatter2.format(newDate.getTime());
            Log.e(Constants.TAG, "onDateSet: UserDob: " + uDOB);
        }

    }, year, month, date);

    datePickerDialog.show();
}

你可以使用下面的方法

datePickerDialog.getDatePicker().setMaxDate(minDate.getTime());

设置最小日期

 Date minDate = null;
 SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
 try 
 {
         minDate = sdf.parse("31/12/1996");
 } 
 catch (ParseException e) 
 {
       e.printStackTrace();
  }

试试这个

mDatePicker.getDatePicker().setMinDate(maxDate.getTimeInMillis());