Я пытаюсь показать только поля месяца месяца и месяца в DatePicker в AlertDialog. В предыдущих API от API 21 я могу сделать это с кодом ниже. Но когда я пытаюсь сделать это в API21 +, «getDeclaredFields()» даже не возвращается, как поля «mYearPicker» или «mYearSpinner». Кто-нибудь знает, как могу ли я просто показать поля «День» и «Месяц»? И я даже не знаю, в каком поле «116».Android API 21+ DatePicker не может скрыть поля
Мой следующий код:
final DatePicker datePickerStart = new DatePicker(new ContextThemeWrapper(getActivity(), android.R.style.Theme_Holo_Light_Dialog_NoActionBar));
datePickerStart .setCalendarViewShown(false);
datePickerStart .setSpinnersShown(true);
try {
Field f[] = datePickerStart .getClass().getDeclaredFields();
for (Field field : f) {
if (field.getName().equals("mYearPicker")|| field.getName().equals("mYearSpinner")) {
field.setAccessible(true);
Object yearPicker = new Object();
yearPicker = field.get(datePickerStart);
((View) yearPicker).setVisibility(View.GONE);
}
}
}
catch (Exception e) {
Log.e("ERROR", e.getMessage());
}
Должно выглядеть так: Before API 21
выглядит так: API 21+
Любая идея?
Um, почему не раскошелиться 'DatePicker' и изменить его в соответствии с ? Или, почему бы не использовать [стороннюю библиотеку] (http://android-arsenal.com/tag/27)? Что заставляет вас думать, что этот подход будет работать на тысячах моделей устройств Android, учитывая, что производители устройств могут изменять внутренние элементы Android, не говоря уже о Google с новыми версиями Android? – CommonsWare
похоже на дубликат http://stackoverflow.com/questions/30789907/hide-day-month-or-year-from-datepicker-in-android-5-0-lollipop – Morse
@Morse thanks !! он работал хорошо – Goktug