2013-07-17 4 views
4

이벤트 일정을 만들고 있습니다. 나는 java.lang.NumberFormatException: Invalid long: “null”java.lang.NumberFormatException : 유효하지 않은 long : "null"

CalendarView.java

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()); 
    } 
} 

로그 캣

E/AndroidRuntime(2990): java.lang.NumberFormatException: Invalid long: "null" 
E/AndroidRuntime(2990): at java.lang.Long.invalidLong(Long.java:125) 
E/AndroidRuntime(2990): at java.lang.Long.parseLong(Long.java:342) 
E/AndroidRuntime(2990): at java.lang.Long.parseLong(Long.java:319) 
E/AndroidRuntime(2990): at com.examples.android.calendar.Utility.readCalendarEvent(Utility.java:36) 
E/AndroidRuntime(2990): at com.examples.android.calendar.CalendarView$1.run(CalendarView.java:184) 

왜 메신저이 점점이 예외 해요? 아무도 나를 도와주세요. 덕분에 나는 당신의 다음 문이 오류를 만들 생각 사전에 많은 ..

+2

당신이뿐만 아니라 코드를 업로드 할 수 있습니까? – Vigbyor

+3

String을 Long으로 구문 분석 중이며 문자열은 null입니다. –

+1

'Utility.readCalendarEvent()'에 문제가 있습니다. CalendarView가 아닙니다. – Aprian

답변

1

,

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()))); 

필드에는 긴 데이터 형식으로 변환하기 전에 제거해야하는 공백이 포함될 수 있습니다.

+0

오류''기본 유형 long에서 trim()을 호출 할 수 없습니다 .' –

+0

@OneManArmy, 하나의 대괄호 실수로 인해 그것을 바로 잡으십시오. – Vigbyor

+2

이제 오류가 같은'java.lang.NullPointerException'을 보여줍니다. –

0

사용 startDates.add(getDate(cursor.getLong(3))); endDates.add(getDate(cursor.getLong(4)));

대신 startDates.add(getDate(Long.parseLong(cursor.getString(3)))); endDates.add(getDate(Long.parseLong(cursor.getString(4))));

관련 문제