现在,这个查询将返回所有日程安排,其中包括那些未处于激活状态的安排。为了只获
得活跃日程安排的列表,我们需要限制我们的查询只返回
“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);