BlackBerry 应用程序开发者指南 第二卷:高级--第3章 集成PIM功能 |
|||
| 作者:佚名 来源:本站整理 发布时间:2008-3-15 0:34:26 | |||
代码实例
例: TaskDemo.java /** * TaskDemo.java * Copyright (C) 2002-2005 Research In Motion Limited. */ package com.rim.samples.docs.taskdemo; import java.io.*; import java.util.*; import javax.microedition.pim.*; import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; import net.rim.device.api.i18n.*; import net.rim.device.api.system.*; import net.rim.device.api.util.*; import com.rim.samples.docs.baseapp.*; public final class TaskDemo extends BaseApp { private TaskScreen _taskScreen; public static void main(String[] args) { new TaskDemo().enterEventDispatcher(); } private TaskDemo() { _taskScreen = new TaskScreen(); pushScreen(_taskScreen); } protected void onExit() { } public final static class TaskScreen extends MainScreen { // Members. private EditField _summary, _note; private DateField _due; private ObjectChoiceField _priority, _status; private SaveMenuItem _saveMenuItem; private class SaveMenuItem extends MenuItem { private SaveMenuItem() { super(null, 0, 100000, 5); } public String toString() { return "Save"; } public void run() { onSave(); } } public TaskScreen() { _saveMenuItem = new SaveMenuItem(); setTitle(new LabelField("Tasks Demo", LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH)); _summary = new EditField("Task Summary: ", ""); add(_summary); // In TODO.Priority, 0 to 9 is highest to lowest priority. String[] choices = {"High", " _priority = new ObjectChoiceField("Priority: ", choices, 1); add(_priority); String[] status = { "Not Started", "In Progress", "Completed", "Waiting on someone else", "Deferred" }; _status = new ObjectChoiceField("Status: ", status, 0); add(_status); _due = new DateField("Due: ", System.currentTimeMillis() + 3600000, DateField.DATE_TIME); add(_due); _note = new EditField("Extra Notes: ", ""); add(_note); } protected boolean onSave() { try { ToDoList todoList = (ToDoList)PIM.getInstance(). openPIMList(PIM.TODO_LIST, PIM.WRITE_ONLY); ToDo task = todoList.createToDo(); task.addDate(ToDo.DUE, ToDo.ATTR_NONE, _due.getDate()); task.addString(ToDo.SUMMARY, ToDo.ATTR_NONE, _summary.getText()); task.addString(ToDo.NOTE, ToDo.ATTR_NONE, _note.getText()); task.addInt(ToDo.PRIORITY, ToDo.ATTR_NONE, _priority.getSelectedIndex()); // ToDo.EXTENDED_FIELD_MIN_VALUE + 9 represents status. // Add 1 to selected index so that values are correct. // See the RIM Implementation Notes in the API docmentation for ToDo. task.addInt(ToDo.EXTENDED_FIELD_MIN_VALUE + 9, ToDo.ATTR_NONE, _status.getSelectedIndex() + 1); // Save task to handheld tasks. task.commit(); _summary.setText(""); _note.setText(""); _due.setDate(null); _priority.setSelectedIndex(1); // Reset to “ _status.setSelectedIndex(0); // Reset to “Not Started” status. return true; } catch (PIMException e) { return false; } } protected void makeMenu(Menu menu, int instance) { menu.add(_saveMenuItem); super.makeMenu(menu, instance); } } }
使用日历 使用一个EventList接口的实例访问日历.为一个约会创建一个或多个对象存储信息.对于每个事件.你可以存储类似主题,地点,开始和结束事件,以及提醒通知的数据. 打开一个事件列表
在可以增加事件之前你必须创建一个EventList.调用PIM.openPIMList(). 调用PIM.openPIMList(),将列表的类型作为open (PIM.EVENT_LIST)的参数 ,并且指定访问的模式(READ_WRITE, READ_ONLY,或WRITE_ONLY)打开列表.
创建一个约会
调用一个事件列表上的createEvent().
增加约会信息
Event类定义了存储数据的字段,例如SUMMARY, LOCATION, START, END, 以及 ALARM.每个字段都有一个指定的类型,你可以调用PIMList.getFieldDataType(int)获得数据类型. 因为取决于字段的数据类型,调用以下方法设置数据: addString(), addDate(), addInt(), addBoolean(), 或 addBinary(). 在你设置或获取一个字段之前, 调用isSupportedField(int)来验证此项是否支持字段.
|
|||
| [] [返回上一页] [打 印] | |||
文章评论 |
|||
