BlackBerry 应用程序开发者指南 第二卷:高级--第4章 增加设备选项

news/2024/7/7 16:11:56

作者: Confach 发表于2006-04-28 22:18 pm
版权信息:可以任意转载, 转载时请务必以超链接形式标明文章 原始出处 和作者信息.
http://www.cnblogs.com/confach/articles/387946.html

4

           第4 增加设备选项



选项API

增加选项

选项API

net.rim.blackberry.api.options 中的BlackBerry选项API允许你将一个选项条目增加到设备选项中.

使用此功能可以增加一个系统级的选项到多个程序可以使用的BlackBerry设备中.

当你在主屏幕上点击Options图标时,将会出现一列选项,例如自动文本(AutoText),日期/时间(Date/Time),和防火墙.用户可以选择这些项查看某个选项的屏幕.此屏幕显示一个或多个字段.一般来说,用户可以更改每个字段的值.

增加选项

注册增加选项

OptionsProvider接口的实现允许应用程序增加选项.它包含了getTitle(),save()以及populateMainScreen()的实现.

BlackBerry设备启动时增加选项.

创建一个类库工程,此工程有一个libMain()方法完成需要的注册.

创建一个类库工程

1.    BlackBerry JDE,创建一个工程.

2.    右击工程,然后单击Properties.

3.    Properties窗口,单击Application标签.

4.    Project type下拉列表中,单击Library.

5.    在启动选项里选择Auto-run.

6.    单击OK.

作为一个选项提供者(Options Provider)注册

getInstance()的实现可以得到一个类的静态实例.一次只存在一个实例.调用libMain()registerOptionsProvider()方法.将一个类的静态实例作为参数.

private static DemoOptionsProvider _instance;

//...

public static DemoOptionsProvider getInstance() {

if(_instance == null) {

    _instance = new DemoOptionsProvider("Options Demo");

}

return _instance;

}

//...

public static void libMain(String[] args) {

    OptionsManager.registerOptionsProvider(getInstance());

}

保存选项

为了保存当前选择的选项值,请实现Persistable接口.在你的实现中,定义方法设置所选的选项值,以及提交和获取持久存储里的选项值.

 :如果你作为一个内部类实现Persistable接口,将它的get(),set(),以及commit()方法设置为public,这样其他的应用程序就可以访问选项数据.

为获取更多关于存储持久数据的信息,参看92页”管理持久数据”

提供选项数据的访问

在你的类库里,增加一个公共方法允许其他的应用程序访问选项数据.

代码实例

本实例描述了选项的使用.


: DemoOptionsProvider.java

/**

* DemoOptionsProvider.java

* Copyright 2002-2005 Research In Motion Limited.

*/

package com.rim.samples.docs.demooptionsprovider;

import net.rim.blackberry.api.options.*;

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.*;

 

// A simple library class to demonstrate the use of the options facilities.

public final class DemoOptionsProvider implements OptionsProvider {

    // members

    private ObjectChoiceField _ocf;

    private OptionsDemoData _data;

    private String _title;

    private static DemoOptionsProvider _instance;

   

    // constructors

    private DemoOptionsProvider() {

       }

   

    private DemoOptionsProvider(String title) {

       _title = title;

       _data = OptionsDemoData.load();

       }

   

    // Only allow one instance of this class.

    public static DemoOptionsProvider getInstance() {

       if (_instance == null) {

           _instance = new DemoOptionsProvider("Options Demo");

           }

       return _instance;

       }

   

    // On startup, create the instance and register it.

    public static void libMain(String[] args) {

       OptionsManager.registerOptionsProvider(getInstance());

       }

   

    // Get the title for the option item.

    public String getTitle() {

       return _title;

       }

   

    // Add fields to the screen.

    public void populateMainScreen(MainScreen screen) {

       int index = _data.getSelected();

       String[] choices = {“High”, “Low”, “None”};

       _ocf = new ObjectChoiceField(“Security: “, choices, index);

       screen.add(_ocf);

       }

   

    // Save the data.

    public void save() {

       _data.setSelected(_ocf.getSelectedIndex());

       _data.commit();

       }

   

    // Retrieve the data. Used by other applications to access options data.

    public OptionsDemoData getData() {

       return _data;

       }

   

    // Inner class to store selected option values.

    public static final class OptionsDemoData implements Persistable {

       private static final long ID = 0x6af0b5eb44dc5164L;

       private int _selectedOption;

       private OptionsDemoData() {       

       }

      

       public int getSelected() {

           return _selectedOption;

           }

       public void setSelected(int index) {

           _selectedOption = index;

           }

      

       public void commit() {

           PersistentObject.commit(this);

           }

      

       private static OptionsDemoData load() {

           PersistentObject persist = PersistentStore.getPersistentObject(

                  OptionsDemoData.ID );

           OptionsDemoData contents = (OptionsDemoData)persist.getContents();

           synchronized( persist ) {

              if( contents == null ) {

                  contents = new OptionsDemoData();

                  persist.setContents( contents );

                  persist.commit();

                  }

              }

           return contents;

           }

       }

  }




http://www.niftyadmin.cn/n/643919.html

相关文章

cb49a_c++_STL_算法_对所有元素排序_sort_stable_sort

cb49a_c_STL_算法_对所有元素排序_sort_stable_sort sort(b,e) sort(b,e,p) stable_sort(b,e) stable_sort(b,e,p)注意: 不适用于list容器,list有成员函数sort();cb49a_c_STL_算法_对所有元素排序_sort_stable_sort sort(b,e) sort(b,e,p) stable_sort(b…

我的各种帮助记忆的短句

mysql变量类型 : 就要花钱 - 局部变量 、 用户变量 、 会话变量 、 全局变量 mysql列的整形和浮点型: 天使米粉肥嘟嘟 tiny int 、small int 、medium int 、int、float、double、decimal

VirtualPC的网络功能

VirtualPC的网络功能VirtualPC支持联网,它有两种工作模式:共享模式在此模式下工作时,主机相当于一个代理服务器,以动态分配方式(DHCP)赋予虚拟机一个IP地址(即通常所说的内网IP)。虚…

SpringBoot学习笔记三之表述层

注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6803355920697917965/ 首先配置learn-admin-webui中的web.xml文件 配置ContextLoaderListener ContextLoaderListener的作用:加载 Spring 的配置文件,根据 S…

Hadoop上简单运行WordCount

注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6597304814411973128/ 我们先搭建本地环境 准备的两个工具 将winutils中的两个文件拷贝 配置环境变量 将日志文件拷贝到我们新建的Eclipse中的Maven项目中 编写Mapper 编写Reduce 编…

通过了解Servlet和Http之间的关系,了解web中http通信使用(二)

注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6512399401825075719/ 1、《Servlet简单实现开发部署过程》 2、《Servlet部署描述符》 3、《通过了解Servlet和Http之间的关系,了解web中http通信使用》 上一节&#…

mysql 使用 workbench工具【E-R图 -- 数据库】之间相互转换

一、已有数据库,自动生成 E-R 图: ①、首先在你的mysql workbench里选中Database——> reverse engineering ②、然后选择你建立的连接(也就是数据库) ③、接下来一路next,直到最后选择导出的数据库 ④、接下来…

CentOS6.5安装Mysql5.6

注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6605434411523506701/ 检查是否有Mysql 安装依赖包 下载Mysql 准备安装包 我们解压文件 进行安装 初始化密码 启动Mysql 我们查看下密码 进到系统里 设置密码 设置开机启动 我们查看下…