- 浏览: 128482 次
- 性别:
- 来自: 武汉
-
最新评论
-
常思己过:
楼主,下载链接出现问题,可否修改下
Gtalk基本功能完成 -
hurryup911:
学习以下!!!顶
Android:将音视和视频结合起来! -
luya615:
“要符合中国国情。”
Blackberry(黑莓) 邮件收发功能
/* * MemoMainScreen.java * * Copyright �1998-2010 Research In Motion Ltd. * * Note: For the sake of simplicity, this sample application may not leverage * resource bundles and resource strings. However, it is STRONGLY recommended * that application developers make use of the localization features available * within the BlackBerry development platform to ensure a seamless application * experience across a variety of languages and geographies. For more information * on localizing your application, please refer to the BlackBerry Java Development * Environment Development Guide associated with this release. */ package com.rim.samples.device.memoapidemo; import java.util.*; import javax.microedition.pim.*; import net.rim.blackberry.api.pdap.*; import net.rim.device.api.system.*; import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.MainScreen; /** * The main screen for the Memo API demo application. */ public final class MemoMainScreen extends MainScreen implements ListFieldCallback { private Vector _memos; private BlackBerryMemoList _memoList; private ListField _memoListField; private MenuItem _addItem = new AddItem(); /** * Constructor. Opens the Memo PIM List and displays a list of memos on the * screen in list format. */ public MemoMainScreen() { super(); try { _memoList = (BlackBerryMemoList) PIM.getInstance().openPIMList( BlackBerryPIM.MEMO_LIST, BlackBerryPIM.READ_WRITE ); } catch ( PIMException pe ) { // Can't open the Memo PIM List. Nothing we can do...exiting the application. MemoApiDemo.errorDialog("PIM#openPIMList() threw " + pe.toString()); System.exit( 1 ); } _memoListField = new ListField(); _memoListField.setCallback( this ); loadMemos(); add( _memoListField ); } /** * Loads the current list of memos into a vector for easy retrieval. */ private void loadMemos() { loadMemos( null ); } /** * Loads the current list of memos into a vector for easy retrieval, and sets * the focus of ListField to the provided memo (if it's not null). */ private void loadMemos( BlackBerryMemo memo ) { try { _memos = new Vector(); Enumeration memoEnum = _memoList.items(); while ( memoEnum.hasMoreElements() ) { _memos.addElement( memoEnum.nextElement() ); } _memoListField.setSize( _memos.size() ); // Causes the list to be updated and painted. if ( memo != null ) { int index = _memos.indexOf( memo ); if ( index != -1 ) { _memoListField.setSelectedIndex( index ); } } } catch ( PIMException pe ) { // Had a problem retrieving the memos... MemoApiDemo.errorDialog("BlackBerryMemoList#items() threw " + pe.toString()); } } /** * Returns the memo that is highlighted in the list, or null if no memo is highlighted. * * @return The currently selected memo, or null if there is no currently selected memo. */ private BlackBerryMemo getSelectedMemo() { int selectedIndex = _memoListField.getSelectedIndex(); if ( selectedIndex == -1 ) { return null; } return (BlackBerryMemo) _memos.elementAt( selectedIndex ); } /** * @see net.rim.device.api.ui.container.MainScreen#makeMenu(Menu,int) */ protected void makeMenu( Menu menu, int instance ) { super.makeMenu( menu, instance ); BlackBerryMemo memo = getSelectedMemo(); if ( memo != null ) { // There is a currently selected memo; add menu items to manipulate it. menu.add( new ViewItem( memo ) ); menu.add( new EditItem( memo ) ); menu.add( new CopyItem( memo ) ); menu.add( new DeleteItem( memo ) ); } menu.add( _addItem ); // "Add" item is always available. } /** * Override Screen.keyChar() to handle the user pressing ENTER. Opens the * "add memo" screen if no memo is selected; otherwise, the currently selected * memo is shown in the "view memo" screen. * * @see net.rim.device.api.ui.Screen#keyChar(char,int,int) */ protected boolean keyChar( char key, int status, int time ) { if ( key == Characters.ENTER ) { BlackBerryMemo memo = getSelectedMemo(); if ( memo == null ) { _addItem.run(); } else { new ViewItem( memo ).run(); } return true; } return super.keyChar( key, status, time ); } /** * Overrides Screen.invokeAction(). Handles a trackball click and provides * identical behavior to an ENTER keypress event. * * @see net.rim.device.api.ui.Screen#invokeAction(int) */ public boolean invokeAction(int action) { switch(action) { case ACTION_INVOKE: // Trackball click. BlackBerryMemo memo = getSelectedMemo(); if ( memo == null ) { _addItem.run(); } else { new ViewItem( memo ).run(); } return true; // We've consumed the event. } return super.invokeAction(action); } ////////////////////////////////////// // ListFieldCallback methods ////////////////////////////////////// /** * Draws a row in the list of memos. * * @param listField The ListField whose row is being drawn. * @param graphics The graphics context to use for drawing. * @param index The index of the row being drawn. * @param y The distance from the top of the screen where the row is being drawn. * @param width The width of the row being drawn. * * @see net.rim.device.api.ui.component.ListFieldCallback#drawListRow(ListField,Graphics,int,int,int) */ public void drawListRow( ListField listField, Graphics graphics, int index, int y, int width ) { BlackBerryMemo memo = (BlackBerryMemo) get( listField, index ); graphics.drawText( memo.getString( BlackBerryMemo.TITLE, 0 ), 0, y, 0, width ); } /** * Retrieves the element from the specified ListField at the specified index. * @param listField The ListField from which to retrieve the element. * @param index The index into the ListField from which to retrieve the element. * @return The requested element. * * @see net.rim.device.api.ui.component.ListFieldCallback#get(ListField , int) */ public Object get( ListField listField, int index ) { return _memos.elementAt( index ); } /** * Returns the preferred width of the provided ListField. * @param listField The ListField whose preferred width is being retrieved. * @return The ListField's preferred width. * * @see net.rim.device.api.ui.component.ListFieldCallback#getPreferredWidth(ListField) */ public int getPreferredWidth( ListField listField ) { return Display.getWidth(); } /** * Retrieves the first occurrence of the provided prefix in the list (not implemented). * @param listField The ListField being searched. * @param prefix The prefix to search for. * @param start List item at which to start the search. * @return -1 (not implemented). * * @see net.rim.device.api.ui.component.ListFieldCallback#indexOfList(ListField,String,int) */ public int indexOfList( ListField listField, String prefix, int start ) { return -1; } ////////////////////// INNER CLASSES ////////////////////// /** * A menu item for adding a new memo. */ private final class AddItem extends MenuItem { /** * Constructor. */ private AddItem() { super("Add Memo" , 100, 100 ); } /** * Pushes a modal edit screen to the display stack, passing it a new memo to edit. * Upon popping the edit screen from the stack, the memo list is re-loaded. */ public void run() { BlackBerryMemo newMemo = _memoList.createMemo(); UiApplication.getUiApplication().pushModalScreen( new EditMemoScreen( newMemo, true ) ); MemoMainScreen.this.loadMemos( newMemo ); } } /** * Menu item for making a copy of a memo. */ private final class CopyItem extends MenuItem { private BlackBerryMemo _memo; /** * Constructor. * @param memo The memo to copy. */ private CopyItem( BlackBerryMemo memo ) { super( "Add Copy of Memo" , 200, 200 ); _memo = memo; } /** * Makes a copy of the memo and re-loads the memo list. */ public void run() { BlackBerryMemo copy = MemoMainScreen.this._memoList.importMemo( _memo ); try { copy.commit(); MemoMainScreen.this.loadMemos( copy ); } catch ( PIMException e ) { // Oh well... MemoApiDemo.errorDialog("BlackBerryMemo#commit() threw " + e.toString()); } } } /** * Menu item for viewing a memo. */ private final class ViewItem extends MenuItem { private BlackBerryMemo _memo; /** * Constructor. * @param memo The memo to view. */ private ViewItem( BlackBerryMemo memo ) { super("View Memo" , 300, 50 ); _memo = memo; } /** * Pushes a view screen to the display stack, passing it the memo to view. */ public void run() { // Push a modal screen, because user may go on to edit the memo and therefore // we need to know when they return. UiApplication.getUiApplication().pushModalScreen( new ViewMemoScreen( _memo ) ); loadMemos( _memo ); // User may have edited the memo; re-load the memo list. } } /** * Menu item for editing a memo. */ private final class EditItem extends MenuItem { private BlackBerryMemo _memo; /** * Constructor. * @param memo The memo to edit. */ private EditItem( BlackBerryMemo memo ) { super("Edit Memo" , 400, 400 ); _memo = memo; } /** * Pushes a modal edit screen to the display stack, passing it the memo to edit. * Upon popping the edit screen off the display stack, the memo list is re-loaded. */ public void run() { UiApplication.getUiApplication().pushModalScreen( new EditMemoScreen( _memo, false ) ); MemoMainScreen.this.loadMemos( _memo ); } } /** * Menu item to delete a memo. */ private final class DeleteItem extends MenuItem { private BlackBerryMemo _memo; /** * Constructor. * @param memo The memo to delete. */ private DeleteItem( BlackBerryMemo memo ) { super("Delete Memo" , 500, 500 ); _memo = memo; } /** * Displays a dialog asking the user to confirm the delete. If confirmed, * the memo is deleted and the memo list re-loaded. */ public void run() { try { if ( Dialog.ask( Dialog.D_DELETE, "Delete memo?", Dialog.CANCEL ) == Dialog.DELETE ) { _memoList.removeMemo( _memo ); MemoMainScreen.this.loadMemos(); } } catch ( PIMException e ) { // Shouldn't happen... MemoApiDemo.errorDialog("BlackBerryMemoList#removeMemo() threw " + e.toString()); } } } }
发表评论
-
如何简单创建Menu(菜单)
2010-03-28 18:40 826MenuMain为主程序,MenuMainScreen是对 ... -
黑莓 用啥 浏览器比较好啊 ?
2010-01-09 09:20 1227相比较还是原版的最好! 其次是opera 5.0 再其次就 ... -
[教程]黑莓实用键盘操作教程—by sigwolf
2010-01-09 01:16 1044[教程]黑莓实用键盘操作教程—by sigwolf 作者:ki ... -
九成网民上网无度身心受损
2010-01-08 12:38 643长时间泡网的“网虫 ... -
[周边] Pong 发售能减少 60% 辐射的 BlackBerry 保护壳
2010-01-07 23:55 863周围有不少的 BlackBerry 用户,但很少有特别 ... -
LATEST ARTICLES [首发加刷机图文]Bell BlackBerry Bold 9000 OS v5.0.0.411 5.0 东亚语言正式版发布
2010-01-05 13:17 1207千呼万唤始出来,Bell BlackBerry Bold 90 ...
相关推荐
【低空经济】低空人工智能调度中心建设方案
少儿编程scratch项目源代码文件案例素材-诅咒大厦.zip
scratch少儿编程逻辑思维游戏源码-纸片马里奥 激流勇进.zip
scratch少儿编程逻辑思维游戏源码-一路跳跃.zip
内容概要:本文详细介绍了五个用于空气耦合超声仿真的COMSOL模型,涵盖二维和三维场景,适用于铝板和钢板的多种缺陷检测。每个模型都包含了具体的参数设置、边界条件选择以及优化技巧。例如,Lamb波检测模型展示了如何利用A0模态检测铝板内的气泡,而三维模型则强调了内存管理和入射角参数化扫描的重要性。表面波检测模型提供了裂纹识别的相关性分析方法,变厚度模型则展示了如何通过几何参数化来模拟复杂的工件形态。文中还分享了许多实用的操作技巧,如内存优化、信号处理和自动化检测逻辑。 适用人群:从事无损检测研究的技术人员、COMSOL软件使用者、超声检测领域的研究人员。 使用场景及目标:①帮助用户理解和掌握空气耦合超声仿真的具体实现方法;②提供实际工程应用中的缺陷检测解决方案;③指导用户进行高效的仿真建模和结果分析。 其他说明:文中提供的模型不仅涵盖了常见的缺陷检测场景,还包括了一些高级技巧,如参数化扫描、自动化检测逻辑等,能够显著提高工作效率。同时,文中还给出了硬件配置建议和一些常见的注意事项,确保用户可以顺利运行这些模型。
实训商业源码-【脐橙】租赁 2.80.0+租赁商家-毕业设计.zip
scratch少儿编程逻辑思维游戏源码-幽灵冲刺.zip
scratch少儿编程逻辑思维游戏源码-粘粘世界物理.zip
机器人开发教程&案例&相关项目资源,奖励仅
实训商业源码-酒吧微上墙4.1.0-毕业设计.zip
实训商业源码-会员计次卡V1.1.1-毕业设计.zip
实训商业源码-二手跳蚤市场V5.4.10带微信支付+上架通知+广告插件-毕业设计.zip
实训商业源码-健康保健类企业网站源码-毕业设计.zip
Linux环境安装mysql的RPM包以及安装步骤:客户端和服务端的安装
实训商业源码-房产中介小程序8.0.51+前端-毕业设计.zip
scratch少儿编程逻辑思维游戏源码-钟声.zip
实训商业源码-【最新版】Xyplayer X3.96 官方正式版-毕业设计.zip
scratch少儿编程逻辑思维游戏源码-追逐游戏.zip
内容概要:本文详细介绍了基于Android Studio开发的日历备忘录记事本项目,涵盖日历查看、添加备忘录、闹钟提醒和删除备忘录等功能。项目使用SQLite数据库进行数据管理和持久化,利用AlarmManager实现闹钟提醒功能。文章深入讲解了各个功能模块的实现细节,如日历视图的使用、数据库操作类的设计、闹钟设置的逻辑以及界面交互的优化。此外,还探讨了一些常见的开发技巧和注意事项,如时间戳的存储、手势识别的应用等。 适用人群:适用于初学者和有一定经验的Android开发者,尤其是希望深入了解SQLite数据库操作和AlarmManager使用的开发者。 使用场景及目标:① 学习如何使用Android Studio构建完整的应用程序;② 掌握SQLite数据库的基本操作,包括建表、增删查改;③ 理解AlarmManager的工作机制及其在实际项目中的应用;④ 提升用户体验,如优化界面交互和提高代码质量。 其他说明:文中提供的源码和详细的代码注释有助于读者更好地理解和实践。同时,项目中预留了一些扩展任务,鼓励读者进一步探索和提升技能。
X52K数控铣床改造纵向进给机构CAD装配图.rar