Android java.lang.NumberFormatException:无效的long:“;空”;
我正在创建活动日历。我发现这个异常Android java.lang.NumberFormatException:无效的long:“;空”;,android,exception,calendar,Android,Exception,Calendar,我正在创建活动日历。我发现这个异常java.lang.NumberFormatException:无效长:“null” Utility.java public class Utility { public static ArrayList<String> nameOfEvent = new ArrayList<String>(); public static ArrayList<String> startDates = new ArrayLi
java.lang.NumberFormatException:无效长:“null”
Utility.java
public class Utility {
public static ArrayList<String> nameOfEvent = new ArrayList<String>();
public static ArrayList<String> startDates = new ArrayList<String>();
public static ArrayList<String> endDates = new ArrayList<String>();
public static ArrayList<String> descriptions = new ArrayList<String>();
public static ArrayList<String> readCalendarEvent(Context context) {
Cursor cursor = context.getContentResolver()
.query(Uri.parse("content://com.android.calendar/events"),
new String[] { "calendar_id", "title", "description",
"dtstart", "dtend", "eventLocation" }, null,
null, null);
cursor.moveToFirst();
// fetching calendars name
String CNames[] = new String[cursor.getCount()];
// fetching calendars id
nameOfEvent.clear();
startDates.clear();
endDates.clear();
descriptions.clear();
for (int i = 0; i < CNames.length; i++) {
nameOfEvent.add(cursor.getString(1));
startDates.add(getDate(Long.parseLong(cursor.getString(3))));
endDates.add(getDate(Long.parseLong(cursor.getString(4))));
descriptions.add(cursor.getString(2));
CNames[i] = cursor.getString(1);
cursor.moveToNext();
}
return nameOfEvent;
}
public static String getDate(long milliSeconds) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(milliSeconds);
return formatter.format(calendar.getTime());
}
}
为什么我会得到这个?谁来帮我。事先非常感谢..我相信您的以下陈述是在制造错误
startDates.add(getDate(Long.parseLong(cursor.getString(3))));
endDates.add(getDate(Long.parseLong(cursor.getString(4))));
只需按以下方式更改它们,然后重试
startDates.add(getDate(Long.parseLong(cursor.getString(3).trim())));
endDates.add(getDate(Long.parseLong(cursor.getString(4).trim())));
您的字段可能包含空白,在将其转换为长数据类型之前,您需要删除该空白。使用
startdate.add(getDate(cursor.getLong(3));
add(getDate(cursor.getLong(4))代码>
而不是
startdate.add(getDate(Long.parseLong(cursor.getString(3)));
add(getDate(Long.parseLong(cursor.getString(4)))代码>您也可以上传代码吗?您正在将一个字符串解析为长字符串,该字符串为空。出现问题的是您的实用程序。readCalendarEvent()
,而不是CalendarView
@Vigby或查看我上面发布的代码。@Aprian CalendarView在我的类名中查看Utility.readCalendarEvent()
显示错误无法对基元类型long调用trim()
startDates.add(getDate(Long.parseLong(cursor.getString(3).trim())));
endDates.add(getDate(Long.parseLong(cursor.getString(4).trim())));