Странное поведение Android Datepicker

Я реализовал средство выбора даты следующим образом:

@Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case DATE_DIALOG_ID:
            // set date picker as current date
            return new DatePickerDialog(this, datePickerListener, year, month, day);
        }
        return null;
    }

private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {



// when dialog box is closed, below method will be called.
    public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) {
        year = selectedYear;
        month = selectedMonth;
        String strMonth = "";
        if (month == 0) {
            strMonth = "January";
        } else if (month == 1) {
            strMonth = "February";
        } else if (month == 2) {
            strMonth = "March";
        } else if (month == 3) {
            strMonth = "April";
        } else if (month == 4) {
            strMonth = "May";
        } else if (month == 5) {
            strMonth = "June";
        } else if (month == 6) {
            strMonth = "July";
        } else if (month == 7) {
            strMonth = "August";
        } else if (month == 8) {
            strMonth = "September";
        } else if (month == 9) {
            strMonth = "October";
        } else if (month == 10) {
            strMonth = "November";
        } else if (month == 11) {
            strMonth = "December";
        }
        day = selectedDay;

        tvPurchaseDate.setText(new StringBuilder().append(day).append(" ").append(strMonth).append(" ").append(year).append(" "));
        tvPurchaseDate.setTextColor(Color.BLACK);
    }
};

Проблема, с которой я сталкиваюсь, заключается в том, что средство выбора даты отображает дату неправильно, как показано на изображениях ниже.

По мере создания диалога:

введите здесь описание изображения

Если я выберу другую дату:

введите здесь описание изображения

Обратите внимание, что дата не является текущей датой (сегодня), а год, отображаемый на колесе, и год, отображаемый в верхней части средства выбора даты, совершенно разные. Я делаю что-то не так? Я не понимаю, потому что я использовал этот код раньше, и он работал нормально. Средство выбора даты вызывается из флиппера представления. заранее спасибо

ИЗМЕНИТЬ

Вот как я вызываю средство выбора даты:

private int day, month, year;

В моем onClick:

showDialog(DATE_DIALOG_ID);

Затем вызывается onCreateDialog() (отображается в коде выше), весь этот код находится внутри действия, из которого выполняется вызов.


person Lunchbox    schedule 11.12.2013    source источник
comment
Какие параметры вы передаете конструктору DatePickerDialog? Вы вызываете какие-либо методы конфигурации в диалоговом окне после этого?   -  person laalto    schedule 11.12.2013
comment
@laalto, я отредактировал свой вопрос. После этого я не вызываю какие-либо методы конфигурации в диалоговом окне. Дайте мне знать, если вам нужно что-нибудь еще   -  person Lunchbox    schedule 11.12.2013
comment
@laalto, упс, static final int DATE_DIALOG_ID = 999;   -  person Lunchbox    schedule 11.12.2013


Ответы (1)


Исправлено только сейчас, мне нужно было установить дату сегодня, потому что средство выбора даты только что добавило первую дату, которую смог найти, и поэтому все отображалось неправильно. Добавил следующий код в мой onCreate()

Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
person Lunchbox    schedule 11.12.2013