Search code examples
androidandroid-datepicker

Android - Hide date field in datepickerdialog


How to hide/remove date field in datepickerdialog. Actually my requirement is to use the native date picker dialog but it shows up with day, month, and year. But as per my requirement i need only month and year. So i want to hide or remove the day field from the view.

Any help will be much usefull.


Solution

  • Private DatePickerDialog createDialogWithoutDateField(){
    
        DatePickerDialog dpd = new DatePickerDialog(_activity, ExpiryDateSetListener,cyear,cmonth, cday);
        try{
        Field[] datePickerDialogFields = dpd.getClass().getDeclaredFields();
        for (Field datePickerDialogField : datePickerDialogFields) { 
            if (datePickerDialogField.getName().equals("mDatePicker")) {
                datePickerDialogField.setAccessible(true);
                DatePicker datePicker = (DatePicker) datePickerDialogField.get(dpd);
                Field datePickerFields[] = datePickerDialogField.getType().getDeclaredFields();
                for (Field datePickerField : datePickerFields) {
                   if ("mDayPicker".equals(datePickerField.getName())) {
                      datePickerField.setAccessible(true);
                      Object dayPicker = new Object();
                      dayPicker = datePickerField.get(datePicker);
                      ((View) dayPicker).setVisibility(View.GONE);
                   }
                }
             }
    
          }
        }catch(Exception ex){
        }
      return dpd;
    
    }
    

    Use the above code for hiding the day field in DatePickerDialog.

    Refer this LINK