2017-09-25 102 views
-1

我想在我的應用中使用日曆添加事件。根據CalenderContract,我需要在每次向日歷添加事件時提供一個常量ID。我不知道該怎麼做。如何在Android中獲取默認的CALENDAR_ID?

我試過使用calender_ID =1,它在一些設備上工作,而calender_ID = 3也在某些設備上工作。

我想會有一些默認的ID可以用來使這個工作正常。

任何人都可以請告訴我這可以做什麼?

在此先感謝。

回答

0

您可以通過這個下面的代碼得到壓延ID:

String projection[] = {"_id", "calendar_displayName"}; 
    Uri calendars; 
    calendars = Uri.parse("content://com.android.calendar/calendars"); 

    ContentResolver contentResolver = c.getContentResolver(); 
    Cursor managedCursor = contentResolver.query(calendars, projection, null, null, null); 

    if (managedCursor.moveToFirst()){ 
     m_calendars = new MyCalendar[managedCursor.getCount()]; 
     String calName; 
     String calID; 
     int cont= 0; 
     int nameCol = managedCursor.getColumnIndex(projection[1]); 
     int idCol = managedCursor.getColumnIndex(projection[0]); 
     do { 
      calName = managedCursor.getString(nameCol); 
      calID = managedCursor.getString(idCol); 
      m_calendars[cont] = new MyCalendar(calName, calID); 
      cont++; 
     } while(managedCursor.moveToNext()); 
     managedCursor.close(); 
    } 

所以,你可以在運行時得到壓延Id和使用它。你不需要硬編碼的1或3列ID。

+0

你能告訴我MyCalendar []是什麼嗎? @chandrakant – droidman

+0

我的方法將採取返回類型的日曆,爲什麼我採取了,但你不需要我編輯我的代碼給你 –