WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章手机编程BlackBerryBlackBerry 应用程序开发者指南 第二卷:高级--第3章 集成PIM功能

BlackBerry 应用程序开发者指南 第二卷:高级--第3章 集成PIM功能
作者:佚名  来源:本站整理  发布时间:2008-3-15 0:34:26

使用任务

使用一个ToDoList类的实例来存储任务或计划项的列表. 为每个任务创建一个或多个ToDo对象来存储数据,例如主题(summary),优先级,持续的时间以及状态.

打开一个任务列表

调用PIM.openPIMList(),将列表的类型作为open (PIM.TODO_LIST)的参数

,并且指定访问的模式(READ_WRITE, READ_ONLY,WRITE_ONLY)打开列表.

ToDoList todoList = null;

try {

    todoList = (ToDoList)PIM.getInstance().openPIMList(PIM.TODO_LIST, PIM.READ_WRITE);

}

catch (PimException e) {

    //an error occurred

    return;

}

创建一个任务

调用任务列表上的createToDo().

ToDo task = todoList.createToDo();

toSerialFormat().

<!--[if !vml]--><!--[endif]-->:新增加的任务不会存到数据库,直到你提交它.为获得更多信息,参看35页的保存一个任务”.

增加任务信息

ToDo类定义字段来存储数据,例如SUMMARY,PRIORITY以及DUE.每个字段都有一个特定的数据类型,你可以使用PIMList.getFieldDataType(int)调用它们.因为取决于字段的数据类型,调用以下方法设置数据:

addString(), addDate(), addInt(), addBoolean(), addBinary().

为获得更多关于字段的信息,参看25页的”PIM API”.

在你设置或获取一个字段之前, 调用isSupportedField(int)来验证此项是否支持字段.

if (todoList.isSupportedField(ToDo.SUMMARY)) {

    task.addString(ToDo.SUMMARY, ToDo.ATTR_NONE, "Create project plan");

}

if (todoList.isSupportedField(ToDo.DUE)) {

    Date date = new Date();

    task.addDate(ToDo.DUE, ToDo.ATTR_NONE, (date + 17280000));

}

if (todoList.isSupportedField(ToDo.NOTE)) {

    task.addString(ToDo.NOTE, ToDo.ATTR_NONE, "Required for meeting");

}

if (todoList.isSupportedField(ToDo.PRIORITY)) {

    task.addInt(Todo.PRIORITY, ToDo.ATTR_NONE, 2);

}

设置任务状态

使用PIM扩展字段ToDo.EXTENDED_FIELD_MIN_VALUE + 9.

常量

STATUS_NOT_STARTED

1

STATUS_IN_PROGRESS

2

STATUS_COMPLETED

3

STATUS_WAITING

4

STATUS_DEFERRED

5

 

task.addInt(ToDo.EXTENDED_FIELD_MIN_VALUE + 9, ToDo.ATTR_NONE, 2);

修改任务信息

为了用一个新值替换一个存在的值,调用合适的set方法,例如setString().为了判断一个字段已经设置其值,调用countValues().

:如果你调用一个增加方法,例如addString(),当一个值存在时,将抛出一个FieldFullException异常.使用相应的set方法,setString()改变一个存在的值.

if (task.countValues(ToDo.SUMMARY) > 0) {

    task.setString(ToDo.SUMMARY, 0, ToDo.ATTR_NONE, "Review notes");

}

保存一个任务

调用commit()方法.在你保存之前,为了决定自从上一次保存任务之后任何字段是否发生变化,调用isModified().

if(task.isModified())

{

    task.commit();

}

获取任务信息

获取一个迭代

调用任务列表上的PIMList.items().

ToDoList todoList = (ToDoList)PIM.getInstance().openToDoList(

       PIM.TODO_LIST, PIM.READ_ONLY);

Enumeration enum = todoList.items();

 

获取一个任务的字段ID以及值

对于某个特定的ToDo,为获取一组包含其数据的字段ID,调用PIMItem.getFields().

为获取字段值,调用PIMItem.getString().

while (enum.hasMoreElements()) {

    ToDo task = (ToDo)enum.nextElement();

}

int[] fieldIds = task.getFields();

int id;

for(int index = 0; index < fieldIds.length; ++index) {

    id = fieldIds[index];

    if(task.getPIMList().getFieldDataType(id) == STRING) {

       for(int j=0; j < task.countValues(id); ++j) {

           String value = task.getString(id, j);

           System.out.println(task.getFieldLable(id) + "=" + value);

           }

       }

}

将一个任务转化为序列化格式

为了导入或导出PIM项数据,使用一个输出写入流将BlackBerry设备中的任务导出为一个支持的序列化格式,例如vCard.

为了获取一个支持的格式的字符串数组,调用PIM.supportedSerialFormats(),并指定列表类型(PIM.TODO_LIST).

:当写到一个输出流时enc参数指定了字符编码格式.支持的字符编码格式包括"UTF8," "ISO-8859-1," "UTF-16BE."此参数不能为空.

ToDoList todoList = (ToDoList)PIM.getInstance().openPIMList(

       PIM.TODO_LIST, PIM.READ_ONLY);

ByteArrayOutputStream byteStream = new ByteArrayOutputStream();

String[] dataFormats = PIM.getInstance().supportedSerialFormats(PIM.TODO_LIST);

Enumeration e = todoList.items();

while (e.hasMoreElements()) {

    ToDo task = (ToDo)e.nextElement();

    PIM.getInstance().toSerialFormat(task, byteStream, "UTF8", dataFormats[0]);

}

导入一个任务

为返回一组PIMItem对象,调用fromSerialFormat().

使用PIM项创建一个新的任务,调用ToDoList.importToDo().

:当写到一个输出流时enc参数指定了字符编码格式.支持的字符编码格式包括"UTF8," "ISO-8859-1," "UTF-16BE."此参数不能为空.

String[] dataFormats = PIM.toDoSerialFormats();

 

// Write task to serial format.

ByteArrayOutputStream os = new ByteArrayOutputStream();

PIM.getInstance().toSerialFormat(task, os, "UTF8", dataFormats[0]);

// Import task from serial format.

ByteArrayInputStream is = new ByteArrayInputStream(outputStream.toByteArray());

PIMItem[] pi = PIM.getInstance().fromSerialFormat(is, "UTF8");

ToDoList todoList = (ToDoList)PIM.getInstance().openPIMList(

       PIM.TODO_LIST, PIM.READ_WRITE);

ToDo task2 = todoList.importToDo((ToDo)pi[0]);

提示: importToDo()方法保存一个任务,因此你不必要调用commit()方法.

删除一个任务

调用任务列表上的removeToDo().

todoList.removeToDo(task);

关闭一个任务列表

调用todoList.close().务必捕捉应用的异常:

try {

    todoList.close();

    }

catch (PimException e) {

    // Handle exception.

}

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码