2011-01-31 33 views
6

Tôi đang cố gắng sử dụng getDisplayNames() trên đối tượng Lịch trong mã Android của mình. Tôi đã bao gồm java.util.Calendar và chưa gặp bất kỳ sự cố nào khi sử dụng bất kỳ thành viên công cộng nào khác của lớp Lịch (tức là Lịch.MONTH). Bây giờ tôi đang thử dòng sau ...Sử dụng Calender.LONG trong getDisplayNames() chưa được giải quyết

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

Và Eclipse đang nói với tôi Calendar.LONG hoặc Calendar.SHORT không tồn tại.

Theo tài liệu ở đây, chúng phải tồn tại: http://developer.android.com/reference/java/util/Calendar.html#LONG

Có thông tin chi tiết nào không?

Trả lời

4

Tôi đã tìm thấy sự cố.

getDisplayName() và liên kết Calendar.LONGCalendar.SHORT là chỉ cấp API 9. Tôi đang ở cấp API 4 để tương thích ngược. Tôi cho rằng, tôi sẽ phải tạo ra chức năng của riêng tôi để dịch các enums tháng thành chuỗi.

+0

Whats một cách để làm điều đó cho api trên cấp 9? – jonney

2

bạn có thể sử dụng

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

hoặc tĩnh nhập khẩu:

import static java.util.Calendar.DAY_OF_MONTH; 

Có vẻ như bạn đã nhập lớp Calendar android, và phù hợp của bạn, bạn cố gắng để có được các lĩnh vực từ lớp đó. Vì vậy, bạn cần phải nói cho trình biên dịch một cách rõ ràng những gì chính xác Calendar bạn sử dụng.

+0

Tôi đã thử cả trực tiếp bằng cách sử dụng 'java.util.Calendar.LONG' nhưng vẫn khẳng định phần LONG chưa được giải quyết. –

+0

bạn có chắc chắn rằng bạn có jdk 6 được giới hạn trong dự án của bạn không? –

+0

Tôi đã tìm ra. Đó là vấn đề về Cấp API. xin lỗi đã làm phiền. 1 cho helpin tôi ra mặc dù! –

6

Hãy thử Điều này (giống với lịch Gregorian hoặc lịch thông thường). DateFormatSymbols là cấp API 1.

int month = date.get(GregorianCalendar.MONTH); 
String monthName = new DateFormatSymbols().getMonths()[month]; 
Các vấn đề liên quan