I need to implement a month chooser in android, where i can choose a month and year instead of a day.I tried to hide the day option in android date picker but its not working.I only need month and year in calendar.How to do that.Please help me.
Asked
Active
Viewed 157 times
0
-
Why not have picker of your own :) two dropdowns one for month(with 12 values) one for years for whatever the number you wish !!! – Ramesh Nov 23 '15 at 07:17
-
Possible duplicate of [Android DatePicker change to only Month and Year](http://stackoverflow.com/questions/21321789/android-datepicker-change-to-only-month-and-year) – kapilgm Nov 23 '15 at 07:19
-
but that answer is not working for me – KJEjava48 Nov 23 '15 at 07:32
1 Answers
1
Try the following code. It will show a DatePicker with only the year and month (without day)
private DatePickerDialog createDialogWithoutDateField() {
DatePickerDialog dpd = new DatePickerDialog(this, null, 2014, 1, 24);
try {
java.lang.reflect.Field[] datePickerDialogFields = dpd.getClass().getDeclaredFields();
for (java.lang.reflect.Field datePickerDialogField : datePickerDialogFields) {
if (datePickerDialogField.getName().equals("mDatePicker")) {
datePickerDialogField.setAccessible(true);
DatePicker datePicker = (DatePicker) datePickerDialogField.get(dpd);
java.lang.reflect.Field[] datePickerFields = datePickerDialogField.getType().getDeclaredFields();
for (java.lang.reflect.Field datePickerField : datePickerFields) {
Log.i("test", datePickerField.getName());
if ("mDaySpinner".equals(datePickerField.getName())) {
datePickerField.setAccessible(true);
Object dayPicker = datePickerField.get(datePicker);
((View) dayPicker).setVisibility(View.GONE);
}
}
}
}
}
catch (Exception ex) {
}
return dpd;
}
This method returns a date picker dialog. So , in your button's onClick method add the following code to display your dialog.
createDialogWithoutDateField().show();
-
I have tried this.But it's not working.It still shows the days in calender because the second for loop is not working. – KJEjava48 Nov 23 '15 at 07:23
-
-
mDeligate,LOG_TAG,MODE_CALENDAR,MODE_SPINNER these are the values for datePickerField.getName() in the second for loop and hence it never matches with "mDaySpinner" – KJEjava48 Nov 23 '15 at 07:42
-
This is not working, if ("mDaySpinner".equals(datePickerField.getName())) always false. every where in net this is the answer , but it is not woking. please update your answer – Nirmal Dhara Sep 17 '16 at 09:33