Что-то странное происходит в моем эмуляторе Android (код и эмулятор работают на API Level 10 - Android 2.3.3): текущая дата в моем эму - 22.08.2011 - если я инициализирую DatePickerDialog с этими настройками (используя значения из новой даты () - которая инициализирует дату с текущей датой / временем), затем происходит сбой со следующим исключением:
08-22 02:14:23.731: ERROR/AndroidRuntime(3038): FATAL EXCEPTION: main
08-22 02:14:23.731: ERROR/AndroidRuntime(3038): java.lang.IllegalArgumentException: current should be >= start and <= end
08-22 02:14:23.731: ERROR/AndroidRuntime(3038): at android.widget.NumberPicker.setCurrent(NumberPicker.java:288)
08-22 02:14:23.731: ERROR/AndroidRuntime(3038): at android.widget.DatePicker.updateSpinners(DatePicker.java:357)
08-22 02:14:23.731: ERROR/AndroidRuntime(3038): at android.widget.DatePicker.init(DatePicker.java:352)
08-22 02:14:23.731: ERROR/AndroidRuntime(3038): at android.app.DatePickerDialog.<init>(DatePickerDialog.java:127)
08-22 02:14:23.731: ERROR/AndroidRuntime(3038): at android.app.DatePickerDialog.<init>(DatePickerDialog.java:86)
Итак, я проверил исходный код для DatePicker (для API lvl 2.3.3) и проверил код DatePicker (потому что по трассировке я знал, что он не работает в методе updateSpinners), и на этом строка 357 (четвертая строка в приведенной выше трассировке стека) вызывает mYearPicker.setCurrent (mYear); что заставило меня думать, что что-то не так с моим годом. Я зарегистрировал год, который я прохожу - это 2011 год, как и ожидалось. Поэтому я вместо этого вручную прошел 2010 год, который сработал - появился DatePickerDialog - инициализированный с 2010 годом (очень жаль, что мне действительно нужен текущий год - 2011;) ...).
Я немного растерялся из-за причины этого ... Дата на моем эмуляторе - как упоминалось выше - правильно установлена на 22.08.2011 - на моем компьютере разработчика установлена та же дата .. .
Какие-нибудь подсказки / идеи относительно того, где я иду не так? Чтобы упростить задачу, вот фрагмент кода, в котором я инициализирую DatePickerDialog:
// Initializes a Date object with the current date and time for clarification:
// it is actually declared as a private member variable of my class -
// just included it here so you guys know of which type dateTime ist
Date dateTime = new Date();
Button dateButton = new Button(context);
dateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// dateSetListener is declared as well - but its code has no influence on the failure of
// the DatePickerDialog - to ensure this I commented all code in the dateSetListener's
// onDateSet method
Dialog dateDialog = new DatePickerDialog(v.getContext(), dateSetListener, dateTime.getYear(),
dateTime.getMonth(), dateTime.getDay());
dateDialog.show();
}
});
Спасибо заранее и наилучшими пожеланиями,
Ready4Android