2011-01-31 16 views
6

Sto cercando di utilizzare getDisplayNames() su un oggetto Calendario nel mio codice Android. Ho incluso java.util.Calendar e non ho avuto problemi nell'usare altri membri pubblici della classe Calendar (ad es. Calendar.MONTH). Ora sto cercando la seguente riga ...Uso di Calender.LONG in getDisplayNames() non risolto

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

E Eclipse sta dicendo mi Calendar.LONG o Calendar.SHORT non esisto.

Secondo la documentazione qui dovrebbero esistere: http://developer.android.com/reference/java/util/Calendar.html#LONG

Tutta la comprensione?

risposta

4

Ho trovato il problema.

Il getDisplayName() e gli associati Calendar.LONG e Calendar.SHORT sono solo API 9. Sono al livello API 4 per la retrocompatibilità. Suppongo, dovrò creare la mia funzione per tradurre il mese in enigmi.

+0

Qual è il modo di farlo per API oltre il livello 9? – jonney

2

è possibile utilizzare

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

o statici importazioni:

import static java.util.Calendar.DAY_OF_MONTH; 

Sembra che è già stato importato classe di Android Calendar, e nella vostra linea si tenta di ottenere i campi di quella classe. Quindi, devi dire esplicitamente al compilatore quale esatto Calendar usi.

+0

Ho provato sia direttamente tramite 'java.util.Calendar.LONG' ma è ancora sostenendo la porzione LONG è irrisolto. –

+0

sei sicuro di avere il jdk 6 limitato al tuo progetto? –

+0

L'ho capito. Era un problema di livello API. dispiace disturbarla. +1 per aiutarmi però! –

6

Prova questo (lo stesso per il calendario Gregoriano o normale). DateFormatSymbols è livello API 1.

int month = date.get(GregorianCalendar.MONTH); 
String monthName = new DateFormatSymbols().getMonths()[month]; 
Problemi correlati