Android DatePicker месяц как целое число
У меня простой вопрос, но после некоторого поиска я так и не смог найти ответ. Можно ли в DatePicker изменить месяц, который будет отображаться как целое число, а не строка? .Eg: {1,2,3 ..} not {jan, feb, mar ...}
EDIT:
Хотя решение @ kaneda, похоже, работает, в Android 3.0, по крайней мере, методы и атрибуты не совпадают. Код, который я использую, таков:
<code>public DatePickerCustom(Context context, AttributeSet attrs) { super(context, attrs); Field[] fields = DatePicker.class.getDeclaredFields(); try { for (Field field : fields) { field.setAccessible(true); if (TextUtils.equals(field.getName(), "mMonthSpinner")) { Method m = field.getType().getDeclaredMethod("setDisplayedValues", String[].class); m.setAccessible(true); String[] s = new String[] {"01","02","03","04","05","06","07","08","09","10","11","12"}; Object[] params = new Object[1]; params[0] = s; m.invoke(field.get(this), params); break; } } } catch (Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } } </code>
EDIT 2:
Лучшее решение - создать пользовательский DatePicker (следуя первому совету @kaneda), всегда будет работать без проблем совместимости и не переходить на рефлексию.
Использовалdate_picker.xml от android и DatePicker.java, опубликованных @kaneda. Кроме того, я использовал собственный NumberPicker (потому что тот, который использует виджет DatePicker, является внутренним для Android). Для виджета NumberPicker я следовал этомуссылка на сайт.
В CustomDatePicker я прокомментировал функциюgetShortMonths()
и установите диапазон месяцев какmMonthPicker.setRange(1, NUMBER_OF_MONTHS);
.