Android Kitkat 17 + Api Hide Date из диалогового окна Datepicker - PullRequest
0 голосов
/ 19 ноября 2018

Я хочу скрыть просмотр даты в диалоге выбора даты.Код работает на Android 5+, т.е. на Lollipop +, но не на Kitkat.

public  class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState){
            final Calendar c = Calendar.getInstance();
            int year = c.get(Calendar.YEAR);
            int month = c.get(Calendar.MONTH);
            int day = c.get(Calendar.DAY_OF_MONTH);


            DatePickerDialog datePickerDialog =

                    new DatePickerDialog(getActivity(), AlertDialog.THEME_HOLO_DARK,
                            new DatePickerDialog.OnDateSetListener() {

                                @Override
                                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

                                }
                            }, year, month, day);

            if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
                datePickerDialog.getDatePicker()
                        .findViewById(Resources.getSystem().getIdentifier("day", "id", "android"))
                        .setVisibility(View.GONE);
            }else {
                try{
                    Field[] datePickerDialogFields = datePickerDialog.getClass().getDeclaredFields();
                    for (Field datePickerDialogField : datePickerDialogFields) {
                        if (datePickerDialogField.getName().equals("mDatePicker")) {
                            datePickerDialogField.setAccessible(true);
                            DatePicker datePicker = (DatePicker) datePickerDialogField.get(datePickerDialog);
                            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);
                                }if ("mDaySpinner".equals(datePickerField.getName())) {
                                    datePickerField.setAccessible(true);
                                    Object dayPicker = new Object();
                                    dayPicker = datePickerField.get(datePicker);
                                    ((View) dayPicker).setVisibility(View.GONE);
                                }
                            }
                        }

                    }
                }catch(Exception ex){
                }
            }
            return datePickerDialog;
        }


}

see image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...