Java android studio中的ArrayList结果大小为0
为什么结果是这样。大小给了我一个零值?我的arraylist重置了吗?或者我需要初始化变量“result” 这是我的密码:Java android studio中的ArrayList结果大小为0,java,android,arraylist,Java,Android,Arraylist,为什么结果是这样。大小给了我一个零值?我的arraylist重置了吗?或者我需要初始化变量“result” 这是我的密码: protected void onPostExecute(ArrayList<Event> result) { Toast.makeText(getApplicationContext(), "result " + (result.size()), Toast.LENGTH_
protected void onPostExecute(ArrayList<Event> result) {
Toast.makeText(getApplicationContext(),
"result " + (result.size()),
Toast.LENGTH_SHORT).show();
for (int i = 0; i < result.size(); i++) {
int day = Integer.parseInt(result.get(i).getDay()); //25
int month = Integer.parseInt(result.get(i).getMonth()); //12
int year = Integer.parseInt(result.get(i).getYear()); // 1988
Calendar c = Calendar.getInstance();
c.set(year, month-1, day, 0, 0);
Date greenDate = c.getTime();
if (caldroidFragment != null) {
caldroidFragment.setBackgroundResourceForDate(R.color.BlueViolet, greenDate);
}
}
}
}
}
这是我的模型课:
private class GetEvents extends AsyncTask<Void, Void, ArrayList<Event>> {
@Override
protected ArrayList<Event> doInBackground(Void... params) {
events.clear();
if (c.moveToFirst()) {
do {
Event event = new Event();
event.setEVENT(c.getString(c.getColumnIndex(CalendarContract.Events.TITLE)));
event.setLOCATION(c.getString(c.getColumnIndex(CalendarContract.Events.EVENT_LOCATION)));
event.setDESCRIPTION(c.getString(c.getColumnIndex(CalendarContract.Events.DESCRIPTION)));
event.setStartDate(c.getLong(c.getColumnIndex(CalendarContract.Events.DTSTART)));
event.setEndDate(c.getLong(c.getColumnIndex(CalendarContract.Events.DTEND)));
events.add(event);
} while (c.moveToNext());
c.close();
}
return events;
}
有人能帮我吗?请告诉我,我很难对其进行编码。你能说明你是如何调用doInBackground的,以及这个结果是如何传递给OnPostExecute的吗?我在我的onMonthChange中调用我的doInBackground,new GetEvents.execute;哦,我想问题是结果什么都没通过,对吗?在我的arraylist中,我只将那个结果声明为变量,我做错了吗?是的,这是可能的,或者你们正在试图在列表完成任务之前访问它。getevents扩展了asynctask类如果您正在运行asynctask,并且将其视为同步任务,那么您没有结果,我的建议是添加日志以查看到底发生了什么请自行回答并将其标记为已回答或删除问题。