BlackBerry应用开发者指南 选项API

网友投稿 244 2023-05-23

本文为BlackBerry应用开发者指南系列文章的第四篇《BlackBerry应用开发者指南 选项API》。net.rim.blackberry.api.options 中的BlackBerry选项API允许你将一个选项条目增加到设备选项中.

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

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

增加选项

注册增加选项

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

BlackBerry设备启动时增加选项.

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

创建一个类库工程

◆在BlackBerry JDE中,创建一个工程.

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

◆在Properties窗口,单击Application标签.

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

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

◆单击OK.

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

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

复制privatestatic DemoOptionsProvider _instance;   //... publicstatic DemoOptionsProvider getInstance() {   if(_instance == null) {       _instance = new DemoOptionsProvider("Options Demo");   }   return _instance;   }   //... publicstaticvoid libMain(String[] args) {       OptionsManager.registerOptionsProvider(getInstance());   1.2.3.4.5.6.7.8.9.10.11.12.

保存选项

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

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

提供选项数据的访问

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

代码实例

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

例: 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. publicfinalclass DemoOptionsProvider implements OptionsProvider {   // members private ObjectChoiceField _ocf;   private OptionsDemoData _data;   private String _title;   privatestatic DemoOptionsProvider _instance;   // constructors private DemoOptionsProvider() {          }   private DemoOptionsProvider(String title) {          _title = title;          _data = OptionsDemoData.load();          }   // Only allow one instance of this class. publicstatic DemoOptionsProvider getInstance() {   if (_instance == null) {              _instance = new DemoOptionsProvider("Options Demo");              }   return _instance;          }   // On startup, create the instance and register it. publicstaticvoid libMain(String[] args) {          OptionsManager.registerOptionsProvider(getInstance());          }   // Get the title for the option item. public String getTitle() {   return _title;          }   // Add fields to the screen. publicvoid populateMainScreen(MainScreen screen) {   int index = _data.getSelected();          String[] choices = {“High”, “Low”, “None”};          _ocf = new ObjectChoiceField(“Security: “, choices, index);          screen.add(_ocf);          }   // Save the data. publicvoid 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. publicstaticfinalclass OptionsDemoData implements Persistable {   privatestaticfinallong ID = 0x6af0b5eb44dc5164L;   privateint _selectedOption;   private OptionsDemoData() {                 }   publicint getSelected() {   return _selectedOption;              }   publicvoid setSelected(int index) {              _selectedOption = index;              }   publicvoid commit() {              PersistentObject.commit(this);              }   privatestatic 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;              }          }     }   1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.97.98.99.

【编辑推荐】

简介BlackBerry API BlackBerry应用开发者指南 使用受控API BlackBerry应用开发者指南 Mail API BlackBerry应用开发者指南 PIM API

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:自动抢验证码,省心验证发票
下一篇:自动接收手机验证码,打造高效工作生活
相关文章

 发表评论

暂时没有评论,来抢沙发吧~