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

代码实例

 

 


: 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", "Normal", "Low"};

           _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 “Normal” priority.

              _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)打开列表.

EventList eventList = null;

try {

    eventList = (EventList)PIM.getInstance().openPIMList(

           PIM.EVENT_LIST, PIM.READ_WRITE);

}

catch (PimException e) {

    // Handle exception.

}

创建一个约会

调用一个事件列表上的createEvent().

Event event = eventList.createEvent();

:约会不会加到数据库中,直到你提交它.为获得更多信息,参看41页的保存一个约会”.

增加约会信息

Event类定义了存储数据的字段,例如SUMMARY, LOCATION, START, END, 以及 ALARM.每个字段都有一个指定的类型,你可以调用PIMList.getFieldDataType(int)获得数据类型.

因为取决于字段的数据类型,调用以下方法设置数据:

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

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

if (event.isSupportedField(Event.SUMMARY)) {

    event.addString(Event.SUMMARY, Event.ATTR_NONE, "Meet with customer");

}

if (event.isSupportedField(Event.LOCATION)) {

    event.addString(Event.LOCATION, Event.ATTR_NONE, "Conference Center");

}

Date start = new Date(System.currentTimeMillis() + 8640000);

if (event.isSupportedField(Event.START)) {

    event.addDate(Event.START, Event.ATTR_NONE, start);

}

if (event.isSupportedField(Event.END)) {

    event.addDate(Event.END, Event.ATTR_NONE, start + 72000000);

}

if (event.isSupportedField(Event.ALARM)) {

    if (event.countValues(Event.ALARM) > 0) {

        event.removeValue(Event.ALARM,0);

       event.setInt(Event.ALARM, 0, Event.ATTR_NONE, 396000);

       }

}

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

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

用户名: 查看更多评论

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

内 容:

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