я реализовал Date Picker следующим образом: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);
}
};
Проблема, которую я имею, что выбора даты отображает дату неправильно, как показано на рисунках ниже.
Как создается диалог:
Если я выбираю другую дату:
Примечание дата не текущая дата (сегодня) и год отображается на колесе и год, отображаемый в верхней части datepicker, совершенно разные. Я что-то делаю неправильно? Я не понимаю, потому что раньше я использовал этот код, и он работал нормально. Выбор даты вызывается из флиппера вида. Спасибо заранее
EDIT
Это, как я называю сборщика Дата:
private int day, month, year;
В моем OnClick:
showDialog(DATE_DIALOG_ID);
Тогда onCreateDialog() называется (отображается в коде выше), весь этот код находится внутри действия, из которого выполнен вызов.
Какие PARAMS вы передаете в 'DatePickerDialog' конструктора? Вы вызываете какие-либо методы настройки в диалоговом окне позже? – laalto
@laalto, я отредактировал мой вопрос. После этого я не вызываю никаких методов настройки в диалоговом окне. Дайте мне знать, если вам нужно что-то еще – Lunchbox
@laalto, Oops, static final int DATE_DIALOG_ID = 999; – Lunchbox