2011-01-31 13 views
6

Estoy tratando de usar getDisplayNames() en un objeto de calendario en mi código de Android. Tengo java.util.Calendar incluido y no he tenido problemas al usar otros miembros públicos de la clase Calendar (es decir, Calendar.MONTH). Ahora estoy tratando la siguiente línea ...Uso de Calender.LONG en getDisplayNames() no resuelto

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

y Eclipse está diciendo que me Calendar.LONG o Calendar.SHORT no existo.

De acuerdo con la documentación que aquí deben existir: http://developer.android.com/reference/java/util/Calendar.html#LONG

Cualquier idea?

Respuesta

4

Encontré el problema.

El getDisplayName() y los Calendar.LONG y Calendar.SHORT asociados son API de nivel 9 solamente. Estoy en API nivel 4 para compatibilidad con versiones anteriores. Supongo que tendré que crear mi propia función para traducir las enumeraciones del mes en cadenas.

+0

¿Cuál es una forma de hacerlo para api por encima del nivel 9? – jonney

2

puede utilizar

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

o estáticas importaciones:

import static java.util.Calendar.DAY_OF_MONTH; 

Parece que ya ha importado la clase de androide Calendar, y en su línea que tratar de conseguir los campos de esa clase. Entonces, necesitas decirle al compilador explícitamente qué número exacto es Calendar que usas.

+0

He intentado tanto directamente usando 'java.util.Calendar.LONG' pero sigue reclamando la parte LARGO no se ha resuelto. –

+0

¿está seguro de que tiene jdk 6 limitado a su proyecto? –

+0

Lo descubrí. Fue un problema de Nivel API. lamento molestarte. ¡+1 por ayudarme! –

6

Pruebe esto (lo mismo para el calendario gregoriano o regular). DateFormatSymbols es el nivel API 1.

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