我在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();
}
}
答案 0 :(得分:1)
您要为selectDate
中的onDayLongPress
分配一个值,但您在onResume
中使用它。每次创建Activity
onCreate()
和onResume()
时都会调用。您收到的是NUllpointerException
,因为onResume()
(在onDayLongPress
之前调用)selectDate
未被初始化,因此null
。您可以在2种方法中的一种中初始化selectDate
以避免异常。