background image

现在,这个查询将返回所有日程安排,其中包括那些未处于激活状态的安排。为了只获

得活跃日程安排的列表,我们需要限制我们的查询只返回

“selected”字段值为真的记录:

7

String[]  projection  =  new  String[]  {  "_id",  "name"  }; 

 Uri  calendars  = 

Uri.parse("content://calendar/calendars");  

8

       Cursor managedCursor =  

9

   managedQuery(calendars, projection,     "selected=1", null, null);  

10

 

现在我们得到了一个日程表的列表。我们可以通过下面的代码排列查询结果:

11

if (managedCursor.moveToFirst()) {   String calName;   

12

 String calId;    int nameColumn = managedCursor.getColumnIndex("name");   

13

 int idColumn = managedCursor.getColumnIndex("_id");   do {  

14

 

   

 calName  =  managedCursor.getString(nameColumn); 

       

 calId  = 

managedCursor.getString(idColumn);  

15

 } while (managedCursor.moveToNext());  } 

一旦我们知道了希望访问哪一个日程安排后,我们可以增加一个日程表事件。日程表事

件有许多重要的字段,其中包括事件题目、时间和位置等信息,以及该事件条目在日程表中
的显示方式等。日程表事件可以是一次性或重复性发生的。

增加单次发生事件到日程表

要想增加条目到一个特定日程表,我们需要使用

ContentValues 配置一个日程表条目插

入:

16

ContentValues event = new ContentValues(); 

每一个事件需要被指定到一个特定日程表,因此你需要首先通过日程表标识来实现插

入这条事件:

17

event.put("calendar_id", calId); 

然后我们再设置该事件的基本信息,包括诸如事件题目、描述和位置等字符段。

18

event.put("title", "Event Title");  event.put("description", "Event Desc");  

19

event.put("eventLocation", "Event Location"); 

另外还有许多不同的选项来配置事件的时间和日期。我们可以使用以下代码设定事件的

起始时间信息:

20

long startTime = START_TIME_MS;  long endTime = END_TIME_MS;  

21

event.put("dtstart", startTime);  event.put("dtend", endTime);