How to display year only in date picker in android

Can someone tell how to show year only in date picker in android

thank

+5
source share
3 answers

You can also use some simple reflection to hide the day and month of the NumberPickerwidget DatePicker. Please note that this may stop working if Google decides to rename member field names. In addition, this approach makes sense when used android:datePickerMode="spinner".

// inflate DatePicker, or e.g. get it from a DatePickerDialog:
DatePicker datepicker = ...

// pre-Honeycomb fields: 
findAndHideField(datepicker, "mDayPicker");
findAndHideField(datepicker, "mMonthPicker");

// Honeycomb(+) fields:
findAndHideField(datepicker, "mDaySpinner");
findAndHideField(datepicker, "mMonthSpinner");

// Lollipop(+) fields (wrapped in a delegate):
final Object mDatePickerDelegate = findFieldInstance(picker, "mDelegate");
findAndHideField(mDatePickerDelegate, "mDaySpinner");
findAndHideField(mDatePickerDelegate, "mMonthSpinner");


/** find a member field by given name and hide it */
private static void findAndHideField(Object object, String name) {
    try {
        final Field field = object.getClass().getDeclaredField(name);
        field.setAccessible(true);
        final View fieldInstance = (View) field.get(object);
        fieldInstance.setVisibility(View.GONE);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

/* find a member field by given name and return its instance value */
private static Object findFieldInstance(DatePicker datepicker, String name) {
    try {
        final Field field = DatePicker.class.getDeclaredField(name);
        field.setAccessible(true);
        return field.get(datepicker);
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

Update: Added code illustrating how this approach works with Android Lollipop 5.0 (API 21 +).


. , , ( , Android 3.0 , Android 5.0).

+6

Custom Year Picker, this is an easy option to select only the year. You are also watching
Custom Year Picker in android try this, it works for me

year picker screenshot I share my screenshot, only Year Picker

0
source

All Articles