创建一个重复发生(recurring)的约会
为了定义一个重复发生的约会,使用一个RepeatRule对象.RepeatRule类为你可以设置的属性和值定义了字段,例如COUNT, FREQUENCY,和 INTERVAL.
为了获取一组支持的字段,调用RepeatRule.getFields().
定义重复模式
调用新的RepeatRule对象上的setInt(int, int) 或setDate(int, int, int, long).
|
RepeatRule recurring = new RepeatRule();
recurring.setInt(RepeatRule.FREQUENCY, RepeatRule.MONTHLY);
recurring.setInt(RepeatRule.DAY_IN_MONTH, 14);
|
指派约会一个重复模式
调用一个事件上的setRepeat(RepeatRule).
|
EventList eventList = (EventList)PIM.getInstance().openPIMList(
PIM.EVENT_LIST, PIM.READ_WRITE);
Event event = eventList.createEvent();
event.setRepeat(recurring);
|
修改约会信息
为使用一个新值代替已经存在的值,调用合适的set方法,例如setString().
为判断一个字段是否已经设置了一个值,调用countValues().
注:当一个值已经存在时,如果你调用一个增加方法,抛出一个FieldFullException.使用相应的set方法,例如setString(),来修改一个已经存在的值.
|
if (event.countValues(Event.LOCATION) > 0) {
event.setString(Event.LOCATION, 0, Event.ATTR_NONE, "Board Room");
}
|
保存一个约会
提示: importEvent()方法保存一个约会,因此你没有必要调用commit().
调用commit()方法.在你保存之前,为了决定自从上一次保存任务之后任何字段是否发生变化,调用isModified().
|
if(event.isModified()) {
event.commit();
}
|
获取约会信息
获取一个约会的迭代
调用PIMList.items().
|
EventList eventList = (EventList)PIM.getInstance().openPIMList(
PIM.EVENT_LIST, PIM.READ_ONLY);
Enumeration e = eventList.items();
|
获取字段的ID和值
对于某个特定的ToDo项,为获取一组包含其数据的字段ID.调用PIMItem.getFields().
获取字段值,调用PIMItem.getString().
|
while (e.hasMoreElements()) {
Event event = (Event)e.nextElement();
int[] fieldIds = event.getFields();
int id;
for(int index = 0; index < fieldIds.length; ++index) {
id = fieldIds[index];
if(e.getPIMList().getFieldDataType(id) == STRING) {
for(int j=0; j < event.countValues(id); ++j) {
String value = event.getString(id, j);
System.out.println(event.getFieldLable(id) + "=" + value);
}
}
}
}
|
将约会转化为一个序列化格式
为了导入或导出PIM项数据,使用一个输出写入流将BlackBerry设备中的任务导出为一个支持的序列化格式,例如iCal.
为了获取一个支持的格式的字符串数组,调用PIM.supportedSerialFormats(),并指定列表类型(PIM.EVENT_LIST).
将一个项写为序列化格式
调用toSerialFormat().
|
EventList eventList = (EventList)PIM.getInstance().openPIMList(
PIM.EVENT_LIST, PIM.READ_ONLY );
ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
|
注:当写到一个输出流时enc参数指定了字符编码格式.支持的字符编码格式包括"UTF8," "ISO-8859-1," 和 "UTF-16BE."此参数不能为空.
|
Enumeration e = eventList.items();
while (e.hasMoreElements()) {
Event event = (Event)e.nextElement();
PIM.getInstance().toSerialFormat(event, byteStream, "UTF8", dataFormats[0]);
}
|
导入一个约会
为了返回一组PIMItem对象,调用fromSerialFormat(java.io.InputStream is, java.lang.String enc).
为了新增一个约会,调用EventList.importEvent().
注:当写到一个输出流时enc参数指定了字符编码格式.支持的字符编码格式包括"UTF8," "ISO-8859-1," 和 "UTF-16BE."此参数不能为空.
|
// Convert an existing appointment into a iCal and then import the iCal as a new
// appointment.
String[] dataFormats = PIM.eventSerialFormats();
// Write appointment to iCal.
ByteArrayOutputStream os = new ByteArrayOutputStream();
PIM.getInstance().toSerialFormat(event, os, "UTF8", dataFormats[0]);
// Import appointment from iCal.
ByteArrayInputStream is = new ByteArrayInputStream(outputStream.toByteArray());
PIMItem[] pi = PIM.getInstance().fromSerialFormat(is, "UTF8");
EventList eventList = (EventList)PIM.getInstance().openPIMList(
PIM.EVENT_LIST, PIM.READ_WRITE);
Event event2 = eventList.importEvent((Event)pi[0]);
|
关闭一个事件列表
调用 close().
|
try {
eventList.close();
}
catch (PimException e) {
// Handle exception.
}
|