Android DatePicker miesiąc jako liczba całkowita
Mam proste pytanie, ale po chwili nie mogłem znaleźć odpowiedzi. Czy w opcji DatePicker można zmienić miesiąc, aby był wyświetlany jako liczba całkowita, a nie ciąg znaków? .Eg: {1,2,3 ..} nie {jan, feb, mar ...}
EDYTOWAĆ:
Chociaż rozwiązanie @ kaneda wydaje się działać, w Androidzie 3.0 przynajmniej metody i atrybuty nie są takie same. Kod, którego używam, jest następujący:
<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>
EDYCJA 2:
Najlepszym rozwiązaniem jest stworzenie Custom DatePicker (zgodnie z pierwszą radą @kaneda), zawsze będzie działać bez problemów ze zgodnością i nie będzie się opierać na refleksji.
Używanydate_picker.xml z Androida i DatePicker.java opublikowane przez @kaneda. Użyłem również niestandardowego obiektu NumberPicker (ponieważ ten, którego używa widget DatePicker, jest wewnętrzny dla systemu Android). Dla widżetu NumberPicker podążyłem za tympołączyć.
W CustomDatePicker skomentowałem tę funkcjęgetShortMonths()
i ustaw zakres miesiąca jakomMonthPicker.setRange(1, NUMBER_OF_MONTHS);
.