2011-01-31 20 views
6

Android kodumda bir Takvim nesnesinde getDisplayNames() kullanmayı deniyorum. java.util.Calendar ekledim ve Takvim sınıfının diğer üyelerini (örn. Calendar.MONTH) kullanarak herhangi bir sorun yaşamadım. Şimdi ...getDisplayNames() çözümlenmemiş Kalender.LONG kullanımı

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

aşağıdaki satırı çalışılıyor Ve Eclipse bana Calendar.LONG veya Calendar.SHORT yoktur anlatıyor.

burada belgelere göre onlar var olmalıdır: http://developer.android.com/reference/java/util/Calendar.html#LONG

Herhangi bir fikir?

import static java.util.Calendar.DAY_OF_MONTH; 

O zaten androidin Calendar sınıf ithal ettiğiniz ve çizgide o sınıftan alanları elde etmeye çalışmak gibi görünüyor:

cevap

4

Sorunu buldum. Yalnızca, yalnızca API düzeyi 9 olan 10 ve ilgili Calendar.LONG ve Calendar.SHORT'dur. Geriye dönük uyumluluk için API düzey 4'teyim. Sanırım, ay enumları dizgeye çevirmek için kendi fonksiyonumu oluşturmam gerekecek.

+0

9'un üzerinde api için bunu yapmanın bir yolu nedir? – jonney

2

Eğer

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

veya statik ithalat kullanabilirsiniz. Yani, derleyiciye açıkça kullandığınız tam olarak ne Calendar olduğunu söylemelisiniz.

+0

Ben hem doğrudan java.util.Calendar.LONG' ama yine de UZUN kısım çözülmemiş iddia ediyor 'kullanarak denedi olduğunu. –

+0

jdk 6 projenize sınırlı olduğundan emin misiniz? –

+0

Bunu çözdüm. Bir API Seviyesi sorunuydu. Rahatsız ettiğim için özür dilerim. Yine de yardım için +1! –

6

Bunu Deneyin (aynı Gregoryen veya normal takvim için de geçerlidir). DateFormatSymbols API seviyesi 1.

int month = date.get(GregorianCalendar.MONTH); 
String monthName = new DateFormatSymbols().getMonths()[month]; 
İlgili konular