2011-01-31 25 views
6

我想在我的Android代码中的日历对象上使用getDisplayNames()。我包含java.util.Calendar,并且没有使用任何其他Calendar类的公共成员(即Calendar.MONTH)的麻烦。现在,我在尝试下面的行...使用Calender.LONG getDisplayNames()未解决

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

而Eclipse是告诉我Calendar.LONGCalendar.SHORT不存在。

据这里的文件应该存在:http://developer.android.com/reference/java/util/Calendar.html#LONG

任何见解?

回答

4

我发现了这个问题。

getDisplayName()和相关联的Calendar.LONGCalendar.SHORT只是API级别9。为了向后兼容,我在API级别4上。我想,我将不得不创建自己的函数来将月份枚举转换为字符串。

2

可以使用

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

或静态导入:

import static java.util.Calendar.DAY_OF_MONTH; 

看来你已经导入Android的Calendar类,并在你行,你试图从那个类中的字段。因此,您需要明确告诉编译器您使用的确切Calendar

+0

我都尝试直接使用`java.util.Calendar.LONG`但它仍然是自称长的部分没有得到解决。 – 2011-01-31 18:46:12

+0

你确定你有jdk 6绑定到你的项目吗? – 2011-01-31 18:49:48

6

试试这个(公历或常规日历一样)。的DateFormatSymbols是API级别1

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