如何限制用户在android中选择21岁以下的出生日期

时间:2017-06-14 13:05:44

标签: android android-dialogfragment android-calendar android-datepicker

我正在使用DatePickerDialog来选择用户的出生日期。如何限制用户选择从当前日期起21岁以下的出生日期。

例如:应限制在1996年6月14日之后的用户出生日期

这是我的代码,

 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();
}

2 个答案:

答案 0 :(得分:1)

您可以使用以下方法

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

设置minDate

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

答案 1 :(得分:1)

试试这个

mDatePicker.getDatePicker().setMinDate(maxDate.getTimeInMillis());
相关问题