从onResume调用方法时出现NullPointer异常

时间:2016-07-09 08:44:25

标签: android

我在longPress上设置我的selectDate但为什么在HighlightCalander函数中我的selectDate为空?任何想法。

在onCreate(主要活动)中调用此eventHandler: -

calendarview.setEventHandler(new CalendarView.EventHandler()
        {
            @Override
            public void onDayLongPress(Date date)
            {
                DateFormat df = SimpleDateFormat.getDateInstance();
                selectDate = date;
                System.out.println(selectDate);
                intent1 = new Intent(getApplicationContext(), MakeAppointmentsActivity.class);
                intent1.putExtra("DATE",df.format(date));
                startActivity(intent1);
            }

在onResume(主要活动)中调用此函数: -

public void HighlightCalendar()
    {
        intent2 = getIntent();
        // get my boolean from save button
        boolean savedDate = intent2.getBooleanExtra("savedDate", false);
        // if i pressed my saved button
        if(savedDate) {
            Toast.makeText(this,"true",Toast.LENGTH_SHORT).show();
            try {
                DateFormat df = SimpleDateFormat.getDateInstance();
                SimpleDateFormat curFormater = new SimpleDateFormat("MMM yyyy");
                String dateString = df.format(selectDate);
                Date dateObj = curFormater.parse(dateString);
                events.add(dateObj);
                calendarview.updateCalendar(events);
            }catch (ParseException e){
                e.printStackTrace();
            }
}
        else
        {
            Toast.makeText(this,"false",Toast.LENGTH_SHORT).show();
        }
    }

1 个答案:

答案 0 :(得分:1)

您要为selectDate中的onDayLongPress分配一个值,但您在onResume中使用它。每次创建Activity onCreate()onResume()时都会调用。您收到的是NUllpointerException,因为onResume()(在onDayLongPress之前调用)selectDate未被初始化,因此null。您可以在2种方法中的一种中初始化selectDate以避免异常。