2012-09-09 4 views
1

나는 그것이 NULL 포인터 예외삭제 이벤트 널 포인터 예외

를 반환하지만 모든 이벤트를 삭제할 때 내가로부터 경로를 가지고

잘 작동 내 캘린더에서 특정 이벤트를 삭제하려고 삽입 쿼리 및 시도 거의 모든

이 내 삭제 이벤트 클래스

public class DeleteEvent extends Activity { 

    public DeleteEvent() { 
     // TODO Auto-generated constructor stub 
    } 

    public int DeleteCalendarEntry(int entryID) { 
     int iNumRowsDeleted = 0; 

     Uri eventsUri = Uri.parse("content://com.android.calendar/events"); 

     Uri eventUri = ContentUris.withAppendedId(eventsUri, entryID); 

     iNumRowsDeleted = getContentResolver().delete(eventUri, null, null); 

     return iNumRowsDeleted; 


    } 
} 
내 코드

입니다

/////////////////////////////////////////////////////////////////////////// 클릭 셀이 실행 //////

image.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
    chose_add_view_delete(); 
    } 
}); 

: -

public void chose_add_view_delete() { 
     final CharSequence[] items = { "Add Event", "View Event","Delete Event" }; 
     AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
     builder.setTitle("What !?"); 
     builder.setSingleChoiceItems(items, 0,new DialogInterface.OnClickListener() { 
     @Override 
      public void onClick(DialogInterface dialog, int which) { 
     // TODO Auto-generated method stub 
        if (which == 0) { 
        DeleteEvent del = new DeleteEvent(); 
        int i = del.DeleteCalendarEntry(82); 
        dialog.dismiss(); 
} 

/////////////////////// //////////////////////////

09-10 12:28:01.385: E/AndroidRuntime(22297): FATAL EXCEPTION: main 
09-10 12:28:01.385: E/AndroidRuntime(22297): java.lang.NullPointerException 
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.content.ContextWrapper.getContentResolver(ContextWrapper.java:90) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at com.iphase.Albayan.DeleteEvent.DeleteCalendarEntry(DeleteEvent.java:25) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at com.iphase.Albayan.MainActivity$9.onClick(MainActivity.java:475) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:935) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.widget.ListView.performItemClick(ListView.java:3746) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1980) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.os.Handler.handleCallback(Handler.java:587) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.os.Handler.dispatchMessage(Handler.java:92) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.os.Looper.loop(Looper.java:130) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.app.ActivityThread.main(ActivityThread.java:3691) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at java.lang.reflect.Method.invokeNative(Native Method) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at java.lang.reflect.Method.invoke(Method.java:507) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) 
09-10 12:28:01.385: E/AndroidRuntime(22297): at dalvik.system.NativeStart.main(Native Method) 
+5

** 스택 추적 무엇입니까? ** – SLaks

+0

그냥 나에게 줄 ull 포인터 예외 및 delete 문 실행시 크래시 – Omarj

+1

스택 추적을 제공하면 문제가있는 정확한 이유 및 위치를 알 수 있습니다. – tolgap

답변

1
Uri eventUri = Uri.parse("content://calendar/events"); // or "content://com.android.calendar/events" 


Cursor cursor = contentResolver.query(eventUri, new String[]{"_id"}, "calendar_id = " + calendarId, null, null); // calendar_id can change in new versions 

while(cursor.moveToNext()) { 
    Uri deleteUri = ContentUris.withAppendedId(eventUri, cursor.getInt(o)); 

    contentResolver.delete(deleteUri, null, null); 
}