2011-01-31 8 views
6

Próbuję użyć getDisplayNames() w obiekcie kalendarza w moim kodzie Android. Mam dołączone java.util.Calendar i nie miałem żadnych problemów z używaniem innych publicznych członków klasy Kalendarza (np. Calendar.MONTH). Teraz jestem próby następujący wiersz ...Używanie programu Calender.LONG w getDisplayNames() nierozwiązanym

mReminderCal.getDisplayName(Calendar.DAY_OF_MONTH, Calendar.LONG, Locale.US) 

i Eclipse mówi mi Calendar.LONG lub Calendar.SHORT nie istnieją.

Zgodnie z dokumentacją tutaj powinny istnieć: http://developer.android.com/reference/java/util/Calendar.html#LONG

Każdy wgląd?

Odpowiedz

4

Znalazłem problem.

Numer getDisplayName() i powiązane z nim Calendar.LONG i Calendar.SHORT to tylko poziom interfejsu API 9. Jestem na poziomie API 4 w celu zapewnienia kompatybilności wstecznej. Przypuszczam, że będę musiał stworzyć własną funkcję tłumaczenia miesięcznych wyliczeń na ciągi.

+0

Co to jest sposób na api powyżej poziomu 9? – jonney

2

można użyć

mReminderCal.getDisplayName(java.util.Calendar.DAY_OF_MONTH, java.util.Calendar.LONG, Locale.US); 

lub statycznych Import:

import static java.util.Calendar.DAY_OF_MONTH; 

Wydaje się, że już importowane Android Calendar klasę, aw linii postarać się pola z tej klasy. Musisz więc dokładnie powiedzieć kompilatorowi, jakiego dokładnie używasz.

+0

Próbowałem zarówno bezpośrednio za pomocą 'java.util.Calendar.LONG' ale nadal twierdząc część LONG jest nierozwiązany. –

+0

czy na pewno masz jdk 6 ograniczony do swojego projektu? –

+0

Wymyśliłem to. To był problem z poziomem interfejsu API. Przepraszam, że przeszkadzam. +1 za pomoc dla mnie! –

6

Spróbuj tego (to samo dla kalendarza gregoriańskiego lub zwykłego). DateFormatSymbols jest poziom API 1.

int month = date.get(GregorianCalendar.MONTH); 
String monthName = new DateFormatSymbols().getMonths()[month]; 
Powiązane problemy