posts - 33,comments - 21,trackbacks - 0

记得前段时间我就说过,要改一个电话簿的例子,到今天才算完成,真是可谓浩大的工程啊!^_^

其实,这两个月来一直都没弄他,忙别的了,然后就给忘了(这个习惯不好),昨天刚看了一下blog,发现自己还有这么个东西没完成,就赶紧完成他了。

原本是从j2medev上下载了一个电话簿程序,源文件是一个txt文件,结构混乱,不知道作者是用什么写的,改扩展名.java,然后导入eclipse,直接ctrl+shift+F,没效果,无奈1000多行一点一点的回车,终于把结构给分清了,然后格式化,改一些小错误,还不错,能运行了。

大学课程曾学过mvc,不过真正做项目时没太用到过,所以就萌生了这么个念头,改整个一个midlet文件成为真正的mvc架构程序。

主midlet:AddrBookMIDlet.java

UI包:

MainMenuForm.java;//主菜单界面

ListAllForm.java;//记录列表界面

AddTelForm.java;//添加记录界面

SearchForm.java;//搜索记录界面

ShowTelForm.java;//详细记录界面

model包:

AddrData.java;//记录对象

AddrDataVector.java;//记录的Vector对象,保存记录列表

FriendData.java;//记录数据model

controller包:

UIController.java;//控制器类,全部控制都写在这里

EventID.java;//事件ID

结构理清楚了,下面就编码了。

至于代码,我感觉只可意会不能言传,或许是我语言表达能力太差吧,总之我认为重点的就是mvc的最基本思想,分工明确,完成各自任务,也就是理论说讲的使输入、处理和输出分开。

比如我新加一个电话联系人记录,过程是这样的:在主界面选择新建“新增电话记录”,当你点击“确定”的按钮,controller控制器接受到了你的命令,做出一个相应动作

addTelForm = new AddTelForm(this);//实例化了一个对象
setCurrent(addTelForm);//然后将界面换成这个刚刚实例化的对象

那么当上述命令执行完,控制器完成他的任务,然后继续等待。

这个时候呈现在手机界面上就是addTelForm这个视图,在你添加了相应信息,点击“确定”,这个时候控制器又工作了,根据你的要求,要新增,那么控制器从视图上获得数据的对象(这里是getString()),然后把数据发给model,model中有相对应的方法,对数据进行处理,结果或许返回,或许不返回,根据具体项目要求来定,这里不返回。都结束后,控制器再次setCurrent一个界面,显示给使用者。

整体就是这样,视图View只负责显示,控制器用于传递,model负责逻辑处理,三者分工明确,各执其责,整个结构清晰明了。

从昨天到现在大概用了10个左右小时完成了这个小程序,其实本不需要这么长时间,不过在改写过程中,也遇到很多问题,在这次改写过程中,对J2ME的理解又加深了一些。

写篇日志留念。

posted on 2007-04-06 17:57 英明 阅读(691) 评论(4)  编辑  收藏 所属分类: J2ME

FeedBack:
# re: 耗时2个多月的败家电话簿程序终于整理完毕
2007-06-29 08:58 | yht
你好,想看你下你修改之后的例子,和你学习一下,能否把程序给我发一份 yanghengtao0513@163.com  回复  更多评论
  
# re: 耗时2个多月的败家电话簿程序终于整理完毕
2007-08-25 21:01 | no_pains
搂主好 我刚开始学习java 您能否也把程序发给我一份? 跟您学习一下。 谢谢 我的邮箱no_pains@126.com  回复  更多评论
  
# re: 耗时2个多月的败家电话簿程序终于整理完毕
2007-09-13 16:00 | yishanerguo
这个只能获得你添加的联系人,无法获得你原来手机里的联系人啊,如果要获得手机里面的联系人和电话,应该怎么做呢,有没有什么参考源码?  回复  更多评论
  
# re: 耗时2个多月的败家电话簿程序终于整理完毕
2007-12-12 21:58 | carlos
刚买了个Nokia的手机,想找点J2me的程序看看,楼主能否发份给我
yurongsheng@163.com  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: