郭克华J2ME移动开发实战教学视频讲义16

上传人:ji****72 文档编号:45882832 上传时间:2018-06-19 格式:PDF 页数:33 大小:434.88KB
返回 下载 相关 举报
郭克华J2ME移动开发实战教学视频讲义16_第1页
第1页 / 共33页
郭克华J2ME移动开发实战教学视频讲义16_第2页
第2页 / 共33页
郭克华J2ME移动开发实战教学视频讲义16_第3页
第3页 / 共33页
郭克华J2ME移动开发实战教学视频讲义16_第4页
第4页 / 共33页
郭克华J2ME移动开发实战教学视频讲义16_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《郭克华J2ME移动开发实战教学视频讲义16》由会员分享,可在线阅读,更多相关《郭克华J2ME移动开发实战教学视频讲义16(33页珍藏版)》请在金锄头文库上搜索。

1、 郭克华郭克华J2ME移动开发移动开发 实战教学视频讲义实战教学视频讲义 第第 16 章章 RMS 高级编程高级编程 郭克华所有作品由郭克华所有作品由 ChinaSEI 独家发布。独家发布。 网址为:网址为:http:/ 对应视频可在对应视频可在http:/上下载。上下载。 本讲义属于郭克华团队网友整理,比视频略有扩充,如果有文字等小错, 请多包涵。本讲义属于郭克华团队网友整理,比视频略有扩充,如果有文字等小错, 请多包涵。 在不盈利的情况下,欢迎免费传播。在不盈利的情况下,欢迎免费传播。 版权所有版权所有.郭克华郭克华 本讲义经过修正、扩充,连同视频,由清华大学出版社出版。本讲义经过修正、扩

2、充,连同视频,由清华大学出版社出版。 详细可查询详细可查询 http:/www.china- http:/ 第第 16 章章 RMS 高级编程高级编程 【本章导读语】 在上一章中, 我们介绍了RMS基本操作, 主要包括RecordStore的维护以及RecordStore 中记录的维护。但是,在很多应用中,对记录的操作可能要进行一些加工,如记录遍历、 记录改变时的监听、记录过滤、排序等,本章重点讲解这些内容。 打开文档,找到 javax.microedition.rms 包,本章内容主要讲解里面的 4 个重要接口: 1:用于记录集遍历的接口: 2:用于记录集监听的接口: 3:用于记录过滤的接口

3、: 4:用于记录排序的接口: 最后我们将用一个案例对它们的应用进行总结。 【16-1】用记录集遍历实现电话簿增删 实例需求 javax.microedition.rms.RecordStore 支持记录集的遍历。记录集遍历,通俗说就是将记 录集中的记录显示出来。本节中将用 MIDlet 来讲解记录集遍历的机制。 本节完成一个电话簿维护的效果,界面出现,如图 16-1 所示: J2ME 移动开发实战教程 图 16-1 程序效果 该界面上有一个列表框, 显示系统中的电话; 下方有一个文本框, 可以输入新的电话, 输入之后,点击界面右下方的“添加”按钮,能够将新的电话添加到电话簿中。在界面上 选择一

4、个电话之后,选择“删除” ,又可以将电话从电话簿中删除,如图 16-2 所示: 图 16-2 删除电话 图 16-2 左边的图中选择了电话“666” ,点击“删除”按钮,出现右边的界面。可以看 出, “666”已经被删除。 ? 2 ?第 16 章 RMS 高级编程 开发过程 第一步:了解基本知识。 打开文档,找到 javax.microedition.rms.RecordStore,在支持记录获取方面,会发现里 面有 1 个重要函数: 该函数传入一个 ID,能够得到该 ID 处的记录。但是,该函数只能得到一条记录,却 不能得到所有记录,如果要得到记录集中的所有记录,还需要对各个 ID 进行循环

5、。通过 以下函数可以得到记录的数量: 而一般情况下,记录的数量就是 ID 的最大值。 第二步:代码编写。 根据以上内容,结合前面一章讲解的 RMS 操作技术,首先建立项目 Prj16_1,然后建 立一个名为 MIDlet1 的 MIDlet,代码如下: MIDlet1.java package prj16_1; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import javax.microedition.rms.RecordStore

6、; public class MIDlet1 extends MIDlet protected void startApp() throws MIDletStateChangeException RecordStore rs = null; try rs = RecordStore.openRecordStore(“RS1“, true); rs.addRecord(“中国“.getBytes(), 0, 4); rs.addRecord(“美国“.getBytes(), 0, 4); rs.addRecord(“韩国“.getBytes(), 0, 4); rs.addRecord(“日本“

7、.getBytes(), 0, 4); rs.addRecord(“德国“.getBytes(), 0, 4); int num = rs.getNumRecords(); for(int i=1;inum2) return RecordComparator.FOLLOWS; else if(num1num2) return RecordComparator.FOLLOWS; else if(num1 100) return true; return false; protected void destroyApp(boolean arg0) throws MIDletStateChangeE

8、xception protected void pauseApp() 运行这个 MIDlet,出现一个手机界面。控制台上打印: 该程序的结果说明,RecordComparator 能够进行较好的排序。不过,该程序还实现了 筛选功能。 第二步:代码编写。 根据以上内容,结合前面一章讲解的 RMS 操作技术, 在项目 Prj16_1 中建立一个名为 MIDlet8 的 MIDlet,代码如下: MIDlet8.java package prj16_1; import javax.microedition.lcdui.ChoiceGroup; import javax.microedition.lc

9、dui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Item; import javax.microedition.lcdui.TextField; import javax.microedition.midlet.

10、MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import javax.microedition.rms.RecordComparator; import javax.microedition.rms.RecordEnumeration; import javax.microedition.rms.RecordStore; ? 28 ? 第 16 章 RMS 高级编程 public class MIDlet8 extends MIDlet implements CommandListener,Recor

11、dComparator private Command cmdAdd = new Command(“添加“, Command.SCREEN, 1); private Form frm = new Form(“电话簿界面“); private ChoiceGroup cg = new ChoiceGroup(“电话簿“, ChoiceGroup.EXCLUSIVE); private TextField tfPhone = new TextField(“输入电话“, “, 20, TextField.PHONENUMBER); private Display dis = null; privat

12、e RecordStore rs = null; protected void startApp() throws MIDletStateChangeException dis = Display.getDisplay(this); dis.setCurrent(frm); frm.addCommand(cmdAdd); frm.append(cg); frm.append(tfPhone); frm.setCommandListener(this); this.initList(); public void initList() cg.deleteAll(); try rs = Record

13、Store.openRecordStore(“RS1“, true); RecordEnumeration re = rs.enumerateRecords(null, this, false); while (re.hasNextElement() byte data = re.nextRecord(); String phone = new String(data); cg.append(phone, null); catch (Exception ex) finally try rs.closeRecordStore(); catch (Exception ex) protected v

14、oid destroyApp(boolean arg0) throws MIDletStateChangeException ? 29 ? J2ME 移动开发实战教程 protected void pauseApp() public void commandAction(Command cmd, Displayable display) try rs = RecordStore.openRecordStore(“RS1“, true); String phone = tfPhone.getString(); byte data = phone.getBytes(); rs.addRecord(

15、data, 0, data.length); catch (Exception ex) finally try rs.closeRecordStore(); tfPhone.setString(“); this.initList(); catch (Exception ex) public int compare(byte rec1,byte rec2) String str1 = new String(rec1); String str2 = new String(rec2); if(pareTo(str2)0) return RecordComparator.FOLLOWS; else if(pareTo(str2)0) return RecordComparator.PRECEDES; return RecordComparator.EQUIVALENT; 运行这个 MIDlet,就可以得到本节案例需求中的效果。 【16-6】 小结 本节中对 RMS 高级的开发进行了系统的阐述,包括记录遍历、记录监听、记录过滤 和排序等。下一章我们将利用一个案例:电话簿来进行更加深入的总结。 ? 30 ? 第 16 章 RMS 高级

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号