成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

BlackBerry應(yīng)用開發(fā)者指南 選項API

移動開發(fā)
在前面我們已經(jīng)介紹了《BlackBerry應(yīng)用開發(fā)者指南》系列的使用受控API、Mail API和PIM API,本文本系列的第四篇——選項API。

本文為BlackBerry應(yīng)用開發(fā)者指南系列文章的第四篇《BlackBerry應(yīng)用開發(fā)者指南 選項API》。net.rim.blackberry.api.options 中的BlackBerry選項API允許你將一個選項條目增加到設(shè)備選項中.

使用此功能可以增加一個系統(tǒng)級的選項到多個程序可以使用的BlackBerry設(shè)備中.

當(dāng)你在主屏幕上點擊Options圖標(biāo)時,將會出現(xiàn)一列選項,例如自動文本(AutoText),日期/時間(Date/Time),和防火墻.用戶可以選擇這些項查看某個選項的屏幕.此屏幕顯示一個或多個字段.一般來說,用戶可以更改每個字段的值.

增加選項

注冊增加選項

OptionsProvider接口的實現(xiàn)允許應(yīng)用程序增加選項.它包含了getTitle(),save()以及populateMainScreen()的實現(xiàn).

BlackBerry設(shè)備啟動時增加選項.

創(chuàng)建一個類庫工程,此工程有一個libMain()方法完成需要的注冊.

創(chuàng)建一個類庫工程

◆在BlackBerry JDE中,創(chuàng)建一個工程.

◆右擊工程,然后單擊Properties.

◆在Properties窗口,單擊Application標(biāo)簽.

◆在Project type下拉列表中,單擊Library.

◆在啟動選項里選擇Auto-run.

◆單擊OK.

作為一個選項提供者(Options Provider)注冊

getInstance()的實現(xiàn)可以得到一個類的靜態(tài)實例.一次只存在一個實例.調(diào)用libMain()的registerOptionsProvider()方法.將一個類的靜態(tài)實例作為參數(shù).

  1. private static DemoOptionsProvider _instance;  
  2. //...  
  3. public static DemoOptionsProvider getInstance() {  
  4. if(_instance == null) {  
  5.     _instance = new DemoOptionsProvider("Options Demo");  
  6. }  
  7. return _instance;  
  8. }  
  9. //...  
  10. public static void libMain(String[] args) {  
  11.     OptionsManager.registerOptionsProvider(getInstance());  

保存選項

為了保存當(dāng)前選擇的選項值,請實現(xiàn)Persistable接口.在你的實現(xiàn)中,定義方法設(shè)置所選的選項值,以及提交和獲取持久存儲里的選項值.

  注:如果你作為一個內(nèi)部類實現(xiàn)Persistable接口,將它的get(),set(),以及commit()方法設(shè)置為public,這樣其他的應(yīng)用程序就可以訪問選項數(shù)據(jù).

提供選項數(shù)據(jù)的訪問

在你的類庫里,增加一個公共方法允許其他的應(yīng)用程序訪問選項數(shù)據(jù).

代碼實例

本實例描述了選項的使用.

例: DemoOptionsProvider.java

  1. /**  
  2. * DemoOptionsProvider.java  
  3. * Copyright 2002-2005 Research In Motion Limited.  
  4. */ 
  5. package com.rim.samples.docs.demooptionsprovider;  
  6. import net.rim.blackberry.api.options.*;  
  7. import net.rim.device.api.ui.component.*;  
  8. import net.rim.device.api.ui.container.*;  
  9. import net.rim.device.api.i18n.*;  
  10. import net.rim.device.api.system.*;  
  11. import net.rim.device.api.util.*;  
  12.  
  13. // A simple library class to demonstrate the use of the options facilities.  
  14. public final class DemoOptionsProvider implements OptionsProvider {  
  15.     // members  
  16.     private ObjectChoiceField _ocf;  
  17.     private OptionsDemoData _data;  
  18.     private String _title;  
  19.     private static DemoOptionsProvider _instance;  
  20.  
  21.     // constructors  
  22.     private DemoOptionsProvider() {  
  23.        }  
  24.  
  25.     private DemoOptionsProvider(String title) {  
  26.        _title = title;  
  27.        _data = OptionsDemoData.load();  
  28.        }  
  29.  
  30.     // Only allow one instance of this class.  
  31.     public static DemoOptionsProvider getInstance() {  
  32.        if (_instance == null) {  
  33.            _instance = new DemoOptionsProvider("Options Demo");  
  34.            }  
  35.        return _instance;  
  36.        }  
  37.  
  38.     // On startup, create the instance and register it.  
  39.     public static void libMain(String[] args) {  
  40.        OptionsManager.registerOptionsProvider(getInstance());  
  41.        }  
  42.  
  43.     // Get the title for the option item.  
  44.     public String getTitle() {  
  45.        return _title;  
  46.        }  
  47.  
  48.     // Add fields to the screen.  
  49.     public void populateMainScreen(MainScreen screen) {  
  50.        int index = _data.getSelected();  
  51.        String[] choices = {“High”, “Low”, “None”};  
  52.        _ocf = new ObjectChoiceField(“Security: “, choices, index);  
  53.        screen.add(_ocf);  
  54.        }  
  55.  
  56.     // Save the data.  
  57.     public void save() {  
  58.        _data.setSelected(_ocf.getSelectedIndex());  
  59.        _data.commit();  
  60.        }  
  61.  
  62.     // Retrieve the data. Used by other applications to access options data.  
  63.     public OptionsDemoData getData() {  
  64.        return _data;  
  65.        }  
  66.  
  67.     // Inner class to store selected option values.  
  68.     public static final class OptionsDemoData implements Persistable {  
  69.        private static final long ID = 0x6af0b5eb44dc5164L;  
  70.        private int _selectedOption;  
  71.        private OptionsDemoData() {         
  72.        }  
  73.  
  74.        public int getSelected() {  
  75.            return _selectedOption;  
  76.            }  
  77.        public void setSelected(int index) {  
  78.            _selectedOption = index;  
  79.            }  
  80.  
  81.        public void commit() {  
  82.            PersistentObject.commit(this);  
  83.            }  
  84.  
  85.        private static OptionsDemoData load() {  
  86.            PersistentObject persist = PersistentStore.getPersistentObject(  
  87.                   OptionsDemoData.ID );  
  88.            OptionsDemoData contents = (OptionsDemoData)persist.getContents();  
  89.            synchronized( persist ) {  
  90.               if( contents == null ) {  
  91.                   contents = new OptionsDemoData();  
  92.                   persist.setContents( contents );  
  93.                   persist.commit();  
  94.                   }  
  95.               }  
  96.            return contents;  
  97.            }  
  98.        }  
  99.   }  

【編輯推薦】

  1. 簡介BlackBerry API
  2. BlackBerry應(yīng)用開發(fā)者指南 使用受控API
  3. BlackBerry應(yīng)用開發(fā)者指南 Mail API
  4. BlackBerry應(yīng)用開發(fā)者指南 PIM API
責(zé)任編輯:佚名 來源: 10086
相關(guān)推薦

2011-04-13 11:31:06

PIM APIBlackBerry

2011-04-13 09:55:16

Mail APIBlackBerry

2011-04-02 13:44:08

2011-04-14 10:03:32

UI組件BlackBerry

2011-04-14 10:05:16

BlackBerry

2011-04-13 14:10:27

.alx文件BlackBerry

2011-04-14 10:34:08

BlackBerry

2010-05-22 16:57:09

BlackBerry開

2022-01-17 19:34:43

SentryWeb APISentry API

2011-04-18 11:00:34

使用音頻BlackBerry

2011-07-19 09:51:32

性能優(yōu)化Designing FAndroid

2011-02-16 16:45:23

MWCRIMBlackBerry

2011-04-26 10:19:46

BlackBerry

2018-03-27 23:25:40

Paddle

2013-08-29 13:41:42

Windows 8.1

2011-04-15 15:16:28

使用圖像對象畫圖BlackBerry

2020-07-15 07:00:00

移動應(yīng)用開發(fā)者指南

2024-02-01 09:37:42

Kubernetes服務(wù)網(wǎng)格? 命令

2019-08-16 10:55:37

開發(fā)者技能AI

2024-05-07 08:45:16

OpenAILlamaIndex大語言模型
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国内自拍偷拍 | 亚洲午夜精品一区二区三区他趣 | 久久久精品一区二区三区 | 成人国产精品久久久 | 在线播放一区二区三区 | 国产精品久久久久久久久久久久冷 | av在线一区二区三区 | 台湾佬成人网 | 日韩最新网站 | 欧美成人性生活 | 黄色三级免费 | 好姑娘高清在线观看电影 | 欧美在线一区视频 | 亚洲日韩中文字幕 | 久久精品视频一区二区 | 久久国产高清 | 99精品国产在热久久 | 国产亚洲一区二区精品 | 国产精品一区久久久久 | 中文二区 | 视频一区在线 | 精品久久久久久久久久久 | 亚洲一区二区免费 | 亚洲国产情侣 | 在线日韩视频 | 亚洲网在线 | 欧美高清视频一区 | 一区二区免费高清视频 | 免费 视频 1级 | 91xxx在线观看 | 精产国产伦理一二三区 | 久久精品视频在线观看 | 精品欧美激情在线观看 | 婷婷色婷婷 | 91色视频在线 | 欧洲精品码一区二区三区免费看 | 久久久久亚洲国产| 国产成人在线视频 | 精品三区 | 日韩和的一区二区 | 伊人伊成久久人综合网站 |