Android Studio Calendar.get(Calendar.DAY_OF_MONTH)nullPointerException

时间:2014-04-23 12:03:30

标签: java android nullpointerexception calendar android-studio

我的日历有问题。 这是代码:

Calendar mCalendar = Calendar.getInstance();
mToday[0] = mCalendar.get(Calendar.DAY_OF_MONTH);
mToday[1] = mCalendar.get(Calendar.MONTH); // zero based
mToday[2] = mCalendar.get(Calendar.YEAR);

无法运行我的项目,因为AndroidStudio在Calendar.DAY_OF_MONTHCalendar.MONTH等上显示错误...我在模拟器中运行时出现nullPointException

这就是

  

必须是以下之一:   java.util.Calendar.DAY_OF_MONTHjava.util.Calendar.MONTH等......

我不明白这个错误,因为Calendar.MONTHjava.util.calendar.MONTH

之一

我有一个导入

import java.util.Calendar;

抱歉,我错过了它的初始化,但还有一个其他类我想使用Calendar.MONTH等等:

mCalendarToday = Calendar.getInstance();

...

int dayOfWeek = mCalendar.get(Calendar.DAY_OF_WEEK);
int firstDay = getDay(mCalendar.get(Calendar.DAY_OF_WEEK);

OR

private Calendar mCalendarToday;

...

private boolean isToday(int day, int month, int year) {
    if (mCalendarToday.get(Calendar.MONTH) == month
        && mCalendarToday.get(Calendar.YEAR) == year
        && mCalendarToday.get(Calendar.DAY_OF_MONTH) == day) {
        return true;
    }
    return false;
}

这里也显示错误。以及我将使用的所有其他行。

4 个答案:

答案 0 :(得分:0)

我确实相信您访问日历的方式是正确的。

我猜测你尝试添加值的int[]未初始化。 你必须致电

int[] mToday = new int[3];

答案 1 :(得分:0)

硬编码。但必须工作。

    int[] mToday = new int[]{};
    java.util.Calendar calendar = java.util.Calendar.getInstance();
    mToday[0] = calendar.get(java.util.Calendar.DAY_OF_MONTH);
    mToday[1] = calendar.get(java.util.Calendar.MONTH);
    mToday[2] = calendar.get(java.util.Calendar.YEAR);

答案 2 :(得分:0)

也许你没有初始化你的字段。我在Eclipse中试过它,这很有效。

int[] mToday = new int[10];
Calendar mCalendar = Calendar.getInstance();
mToday[0] = mCalendar.get(Calendar.DAY_OF_MONTH);
mToday[1] = mCalendar.get(Calendar.MONTH); // zero based
mToday[2] = mCalendar.get(Calendar.YEAR);

答案 3 :(得分:0)

它看起来像Android Studio的一个错误:0.5.5

请参阅http://code.google.com/p/android/issues/detail?id=68758