Android DatePickerDialog странный текстовый вид

#android #date #datepicker #textview #datepickerdialog

#Android #Дата #datepicker #текстовый просмотр #datepickerdialog

Вопрос:

Я обнаружил кое-что странное:
давайте посмотрим на обычный DatePickerDialog :

Без

Когда я добавляю эту строку, которая устанавливает максимальную дату вчера:

 datePickerDialog.getDatePicker().setMaxDate(yesterdayCal.getTime().getTime());
  

Это выглядит так:

с

Вы видите разницу? Он добавляет текстовое представление над датчиком. Я не знаю почему. Это выглядит странно и всегда показывает ту же дату, что и выбранная. Я хочу его удалить? Какие-нибудь идеи?

Полный код:

 DatePickerDialog datePickerDialog = new DatePickerDialog(this, R.style.DialogTheme, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

                        Calendar pickedCal = Calendar.getInstance(Locale.getDefault());
                        pickedCal.set(year, monthOfYear, dayOfMonth);
                        setToMidnight(pickedCal);

                        SimpleDateFormat dateFormat = new SimpleDateFormat("EEE dd.MM.yyyy", Locale.getDefault());
                        String pickedDate = dateFormat.format(pickedCal.getTime());
                        MyToast.showLong(LiveSelectActivity.this, getString(R.string.hinweis_nachtragen_gueltig, pickedDate));
                        startNachtragen(pickedCal.getTime());

                    }
                }, currentCalendar.get(Calendar.YEAR), currentCalendar.get(Calendar.MONTH), currentCalendar.get(Calendar.DAY_OF_MONTH));

                /*Setzt das maximale Auswahldatum auf gestern.*/
                Calendar yesterdayCal = (Calendar) currentCalendar.clone();
                yesterdayCal.add(Calendar.DATE, -1);
                datePickerDialog.getDatePicker().setMaxDate(yesterdayCal.getTime().getTime());

                datePickerDialog.show();

            }
  

Ответ №1:

По какой-то причине установка максимальной даты в этой строке задает заголовок DatePickerDialog

 datePickerDialog.getDatePicker().setMaxDate(yesterdayCal.getTime().getTime());
  

Чтобы удалить заголовок, используйте setTitle("")

 datePickerDialog.getDatePicker().setMaxDate(yesterdayCal.getTime().getTime());
datePickerDialog.setTitle("");
datePickerDialog.show();
  

Комментарии:

1. это работает! я дам вам награду, как только она будет разблокирована!

2. Проверьте это решение на более старых версиях Android. Это может отлично работать в современных версиях, но в старых может потребоваться изменить заголовок.