Java 无法启动活动-NullPointerException
我似乎找不到这个虫子的罪魁祸首。以下是我的全部活动:Java 无法启动活动-NullPointerException,java,android,nullpointerexception,Java,Android,Nullpointerexception,我似乎找不到这个虫子的罪魁祸首。以下是我的全部活动: public class CalendarActivity extends Activity implements OnClickListener { private GestureDetector mGestureDetector; private ProgressDialog mProgressDialog; private int mGridWidth, mGridHeight; private MonthlyCalendarWidg
public class CalendarActivity extends Activity implements OnClickListener {
private GestureDetector mGestureDetector;
private ProgressDialog mProgressDialog;
private int mGridWidth, mGridHeight;
private MonthlyCalendarWidget mMonthlyCalendar;
private Button mNext;
private Button mPrev;
private CalendarGridAdapter mDayGridAdapter;
private CalendarEventsListAdapter mEventsListAdapter;
private CalendarAssignmentsListAdapter mAssignmentsListAdapter;
private Calendar mCalendarSource;
private String mMonthId;
private int mMonth, mYear;
private CalendarDbAdapter mCalendarDb;
private CalendarSQLiteAdapter mCalendarSQL;
private CalendarEventData mCalendarEvent;
private ArrayList<CalendarEventData> mEventsList;
private CalendarAssignmentData mCalendarAssignment;
private ArrayList<CalendarAssignmentData> mAssignmentsList;
public ArrayList<CalendarEventData> getCalendarEventData() throws Exception {
ArrayList<CalendarEventData> eventsList = CalendarDbAdapter
.getCalendarEvent("2011", 9, 36, "ParentAndroidSerpong");
return eventsList;
}
public void cacheCalendarEventData(ArrayList<CalendarEventData> data) {
for (int i = 0; i < data.size(); i++) {
mCalendarSQL.addEvents(data.get(i));
}
}
private SimpleCursorAdapter fillEventData() {
Cursor c = mCalendarSQL.fetchAllEvents();
startManagingCursor(c);
String[] from = new String[] { CalendarSQLiteAdapter.KEY_EVENTS_NAME, CalendarSQLiteAdapter.KEY_EVENTS_START_DATE };
int[] to = new int[] { R.id.monthlylistchip_texttop, R.id.monthlylistchip_textbottom };
return new SimpleCursorAdapter(this, R.layout.monthly_listchip, c, from, to);
}
public ArrayList<CalendarAssignmentData> getCalendarAssignmentData()
throws Exception {
ArrayList<CalendarAssignmentData> assignmentList = CalendarDbAdapter
.getCalendarAssignment("0970001931", "2011", "4", 36,
"ParentAndroidSerpong");
return assignmentList;
}
public void cacheCalendarAssignmentData(
ArrayList<CalendarAssignmentData> data) {
for (int i = 0; i < data.size(); i++) {
mCalendarSQL.addAssignments(data.get(i));
}
}
private void updateView(int month, int year) {
mDayGridAdapter = new CalendarGridAdapter(this,
R.id.monthly_gridchip_date, mGridWidth, mGridHeight, month,
year);
mEventsListAdapter = new CalendarEventsListAdapter(this,
R.layout.monthly_listchip, mEventsList);
mAssignmentsListAdapter = new CalendarAssignmentsListAdapter(this,
R.layout.monthly_listchip, mAssignmentsList);
mCalendarSource.set(year, month - 1,
mCalendarSource.get(Calendar.DAY_OF_MONTH));
mMonthId = (String) DateUtils.getFormattedDateString(
mCalendarSource.getTime(), DateUtils.MONTH_AND_YEAR);
mMonthlyCalendar.instantiate(this, mMonthId, mDayGridAdapter,
fillEventData(), mAssignmentsListAdapter);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mGridHeight = ScreenUtils.getDisplayHeight(this) / 10;
mGridWidth = ScreenUtils.getDisplayWidth(this) / 7;
mNext = (Button) findViewById(R.id.monthlyview_header_monthnext);
mNext.setOnClickListener(this);
mPrev = (Button) findViewById(R.id.monthlyview_header_monthprev);
mPrev.setOnClickListener(this);
mCalendarSQL = new CalendarSQLiteAdapter(this);
mCalendarSQL.open();
try {
cacheCalendarEventData(getCalendarEventData());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mCalendarSource = Calendar.getInstance(Locale.getDefault());
mMonth = mCalendarSource.get(Calendar.MONTH) + 1;
mYear = mCalendarSource.get(Calendar.YEAR);
updateView(mMonth, mYear);
}
@Override
public void onClick(View v) {
if (v == mPrev) {
if (mMonth <= 1) {
mMonth = 12;
mYear--;
} else {
mMonth--;
}
updateView(mMonth, mYear);
} else if (v == mNext) {
if (mMonth > 11) {
mMonth = 1;
mYear++;
} else {
mMonth++;
}
updateView(mMonth, mYear);
}
}
}
我所知道的是,当我调用此命令时,代码中断:
mMonthlyCalendar.instantiate(this, mMonthId, mDayGridAdapter,
mEventsListAdapter, mAssignmentsListAdapter);
该方法应该将适配器绑定到我的自定义视图
提供了所有必需的变量,那么为什么系统给我一个
NullPointerException
?抛出一个空检查--if(herp==null){
p.s,为这些乱七八糟的代码感到抱歉。:PWell这太尴尬了。我确实删除了初始化代码,以为当系统对R.layout.main进行充气时它会被初始化(它有我的自定义视图)。我现在觉得自己很笨。哈哈。谢谢大家。
mMonthlyCalendar.instantiate(this, mMonthId, mDayGridAdapter,
mEventsListAdapter, mAssignmentsListAdapter);