开发者社区


C++/C | Java | .Net/Windows | Linux/Unix | 开源 | 其他
首页 - 编程
编程
全文搜索:   

探索J2ME:对记录进行排序
作者: BUILDER.COM
2002-10-15 11:55:19



用RecordFilter来查找记录

尽管我没有在ExpensesApp应用程序中完成它,RecordEnumeration也可能完成搜寻记录的功能。为了做到这一点,你要向RecordStore.enumerateRecords传递一个类(该类实现了RecordFilter的接口)的实例,并完全忽略RecordComparatorRecordFilter仅有一个名为matches方法,它接受一个字节数组参数(字节数组代表了某个记录)。该方法用于检测记录,并根据被检测的记录是否符合预定标准而返回“真”或者“假”。

举例来说,假设我们有一个RecordFilter的实现:ExpenseFilter,它在整个记录库中搜寻开销记录中的“开销分类(category)”字段符合ExpenseInfo.CATEGORYMEALS的开销项目,如代码清单C所示。为了获得只有符合上述条件的记录集合(enumeration,枚举),我可以这样组织代码:
RecordStore rs = RecordStore.openRecordStore(RS_NAME);
RecordEnumeration enu = es.enumerateRecords(new ExpenseFilter, null, false);


在这里,变量enu仅包含分类为“膳食”(这在用户界面指点)的开销记录。

工作尚未完成,我们仍需努力

到目前为止,ExpensesApp已经相当完善了。现在,它已经有了个像样的用户界面(包括添加新的开销记录的快捷方式),也有了些实际用处——在运行过程中存储信息。但是仍有一些问题:

  • 新添加的开销记录并没有按照排序插入链表中的对应位置。
  • ExpenseInfo的实例中的任何改变仅仅更新内存,而没有考虑到如果该实例已经存盘,还需要将更新后的内容重新存盘——我担心这一点可能还没有人看出来。
  • 本应用程序还不适合在移动设备运行,因为当它暂停运行时,它没有试图释放它所占用的资源——而这一点是移动设备应用程序所必须考虑的。

在下一篇文章中,我将向你介绍如何用“活的” RecordEnumeration和记录改变通知API来解决上述缺陷。



本文为ZDNet China版权所有,未经许可严禁转载。

责任编辑:炒饭

欢迎评论或投稿

【上一页】
声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
Copyright (c) CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号