1

我正在使用DatePickerDialog來選擇用戶的出生日期。如何限制用戶從當前日期起21歲以下選擇出生日期。如何限制用戶在android中選擇21歲以下的出生日期

如:14/6/1996出生後的用戶日期應該從選擇

這是我的代碼進行限制,

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

您可以使用以下方法爲

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

什麼價值,我需要給出 「your_min_date_long_value」。因爲日期會每天增加 – winchester100

+0

好吧我會更新我的答案 –

+0

@abhinayg檢查我的更新回答 –

1

試試這個

mDatePicker.getDatePicker().setMinDate(maxDate.getTimeInMillis()); 
相關問題