2011-04-27 4 views
5

나는 Android 캘린더에서 모든 항목을 삭제하는 간단한 코드를 작성했지만 아무 것도 삭제하지 않았습니다.캘린더 항목 삭제

소스 코드 :

public void DeleteEvent(View view){ 

      int iNumRowsDeleted = 0; 
      Uri eventsUri = Uri.parse("content://com.android.calendar/events"); 
      Cursor cur = getContentResolver().query(eventsUri, null, null, null, null); 

      while (cur.moveToNext()){ 

       long id = cur.getLong(cur.getColumnIndex("_id")); 
       Log.d(TAG, "ID: " + id); 
       Uri eventUri = ContentUris.withAppendedId(eventsUri, id); 
       iNumRowsDeleted = getContentResolver().delete(eventUri, null, null); 
      } 
     } 
+0

고마워요. @Husky .. 저에게 맞습니다. –

답변

5

나는 삭제를 위해 이것을 사용

private void deleteEvent(ContentResolver resolver, Uri eventsUri, int calendarId) { 
    Cursor cursor; 
    if (android.os.Build.VERSION.SDK_INT <= 7) { //up-to Android 2.1 
     cursor = resolver.query(eventsUri, new String[]{ "_id" }, "Calendars._id=" + calendarId, null, null); 
    } else { //8 is Android 2.2 (Froyo) (http://developer.android.com/reference/android/os/Build.VERSION_CODES.html) 
     cursor = resolver.query(eventsUri, new String[]{ "_id" }, "calendar_id=" + calendarId, null, null); 
    } 
    while(cursor.moveToNext()) { 
     long eventId = cursor.getLong(cursor.getColumnIndex("_id")); 
     resolver.delete(ContentUris.withAppendedId(eventsUri, eventId), null, null); 
    } 
    cursor.close(); 
} 

나는 이런 식으로 뭔가로 전화 :

Uri eventsUri; 
int osVersion = android.os.Build.VERSION.SDK_INT; 
if (osVersion <= 7) { //up-to Android 2.1 
    eventsUri = Uri.parse("content://calendar/events"); 
} else { //8 is Android 2.2 (Froyo) (http://developer.android.com/reference/android/os/Build.VERSION_CODES.html) 
    eventsUri = Uri.parse("content://com.android.calendar/events"); 
} 
ContentResolver resolver = this.getContentResolver(); 
deleteEvent(resolver, eventsUri, calendarId); 
+0

고맙습니다. =) – Husky

+0

여기에 캘린더 ID는 무엇입니까 – AndroidDev

+0

안드로이드는 여러개의 캘린더를 가질 수 있습니다. CalendarId는 사용하려는 달력을 나타내는 정수입니다. –

0

사용 오른쪽이 코드

 public void DeleteEvent(int your_event_id){ 

     int iNumRowsDeleted = 0; 
     Uri eventsUri = Uri.parse("content://com.android.calendar/events"); 
     Cursor cur = getContentResolver().query(eventsUri, null, null, null, null); 

     while (cur.moveToNext()){ 

      Uri eventUri = ContentUris.withAppendedId(eventsUri, your_event_id); 
      iNumRowsDeleted = getContentResolver().delete(eventUri, null, null); 
     } 
    } 
관련 문제