滁州学院毕业论文
如图6-4头像选择框,在对进行用户信息增加时,点击用户头像按钮,弹出用户头像选择框:
图6-4 头像选择框
6.2.5 备份功能测试
点击底部菜单的菜单按钮,事件响应菜单中包含显示所有、删除所有、以及备份SD卡选项,菜单功能界面如图6-5所示。当点击备份SD卡功能时,会出现提示功能框“是否需要备份记录到SD卡?”如图6-6所示。按照提示选择确定或者取消,选择确定,备份成功并统计备份条数:
图6-5 菜单功能界面
图6-6 备份提示框
6.2.6 通讯功能测试
在用户在通讯录选择联系人进入联系人详细信息界面,这时点击menu键打开通信功能框如图6-8,然后选择打电话、发信息还是发邮件的功能通过接口套用识别号码跳转到相应的功能。
图6-7 通信功能框
32
滁州学院毕业论文
6.3测试总结
通过对本系统进行的多次的测试,系统正确实现了对联系人增加、删除、查找、修改、备份、显示所有、删除所有、发信息、打电话、发邮件等操作,实现了用户对通讯录的基本要求。在测试过程中对程序细节上出现的漏洞进行修补,系统运行的稳定性基本达到要求,运行结果比较良好。在整个工程的构思方面还存在着不足,这些问题还需要今后逐一解决。与此同时,这个软件还可以进一步扩展,带给用户更好的体验与生活的便捷。
结束语
在系统开发过程中,对Android的学习比想象的要困难的多,为了在短时间内投入到开发,完成系统。需要大量的时间去学习,我在图书馆借阅了相关开发的书籍,照着上面去学习,以最快的速度学习Android,掌握开发中的各种控件的使用。本文主要研究了Android平台的架构以及在Android平台上手机通讯录功能的实现。
本文在Android平台以及在该平台上开发手机通讯录上做了大量的工作,但因个人能力有限,还有很多问题需要实现和解决,现对未来可以进行的工作做出以下几点展望:
(1)本文实现的通讯录是基于Android平台进行开发的,但是还未能真正解析Android的精髓,系统的界面设计也不是很完善,对Android平台进一步研究能够使系统在设计方面更加快捷和完善。 (2)本文所开发的系统目前还只是在模拟器上进行运行,还有待移植到真机上进行进一步研究。相信随着研究的进一步深入,这些问题会逐步得到解决,相信基于Android手机通讯录类应用软件会有很好的应用前景。
这次系统的开发对我来说是一个挑战,对于从来没接触过Android的我经过努力,现在程序运行良好,基本功能得以实现。这一次的系统开发让我受益匪浅,我相信它会对我以后的人生和工作都起到很好的促进作用,有着积极的影响。
参考文献
[1]靳岩, 姚尚朗. Google Android 开发入门与实战[M]. 北京: 人民邮电出版社, 2009: 1-12 [2]景保玉. 2010中国移动应用开发现状与趋势大调查[M]. 北京: 人民邮电出版社, 2011: 2-19 [3](英)Herbert Schildt.Java 参考大全[M]. 北京: 清华大学出版社, 2008: 9-11
[4](美)鲍格斯坦(Bergsten,H.) 著, 林琪, 朱涛江 译.JSP设计(第三版)[M]. 北京: 中国电力出版社, 2004: 12-28
[5]高昂. 支持动态语言的Android平台[M]. 北京: 人民邮电出版社, 2009: 5-7 [6]郭志宏. Android应用开发详解[M]. 北京: 电子工业出版社, 2010: 6-21
[7]韩超, 梁泉. Android 系统开发原理及开发要点详解[M]. 北京: 电子工业出版社, 2010: 1-11 [8]李宁. Android/OPhone 开发完全讲义[M/CD]. 北京: 水利水电出版社, 2010: 6-19
33
滁州学院毕业论文
[9]余志龙. Google Android SDK 开发范例大全(第2版)[M]. 北京: 人民邮电出版社, 2010: 6-6 [10]公磊, 周聪. Android的移动应用终端应用程序开发与研究[J]. 南昌: 计算机与现代化, 2008: 8: 85-89
[11]高焕堂. Android应用框架原理与程式设计36技[M]. Google公司, 2008: 2-22 [12] (英)梅尔. Android 2高级编程(第2版)[M]. 北京: 清华大学出版社, 2010: 12-12
[13]Dautenhahn.Kerstin.Methodology and themes of human-robot interaction: A growing research field[J]. Apress:International Journal of Advanced Robotic Systems, 2007: 103-108
[14] Mehran Sahami. Programming Methodology[M]. Apress:the Expert’s Voice, 2008: 4-12 [15] Julie Zelenski. Programming Abstractions[M]. Apress: the Expert’s Voice, 2010: 3-16 [16]Haseman Chris.Android Essentials[M]. Apress: the Expert’s Voice, 2009: 8-22
[17]DiMarzia Jerome.A Programmer’s Guide[M]. McGraw-Hill: the Expert’s Voice, 2008: 4-11 [18]王向辉, 张国印, 沈洁. Android应用程序开发[M]. 北京: 清华大学出版社, 2010: 3-3 [19]张孝祥. java就业培训教程[M]. 北京: 清华大学出版社, 2007: 7-22
[20]E2ECloud工作室. 深入浅出Google Android [M]. 北京: 人民邮电出版社, 2009: 8-11
附录
/*响应单击事件,单点击某一个选项的时候,跳转到用户详细信息页面*/ public void onItemClick(AdapterView> arg0, View arg1, int arg2, long arg3) { HashMap item = (HashMap)arg0.getItemAtPosition(arg2); int _id = Integer.parseInt(String.valueOf(item.get(\
34
滁州学院毕业论文
Intent intent = new Intent(Main.this,UserDetail.class); User user = new User();
user._id = Integer.parseInt(String.valueOf(item.get(%user.address = String.valueOf(item.get(%user.company = String.valueOf(item.get(%user.email = String.valueOf(item.get(\
user.familyPhone = String.valueOf(item.get(%user.mobilePhone = String.valueOf(item.get(%user.officePhone = String.valueOf(item.get(%user.otherContact = String.valueOf(item.get(%user.position = String.valueOf(item.get(%user.remark = String.valueOf(item.get(%user.username = String.valueOf(item.get(%user.zipCode = String.valueOf(item.get(\
user.imageId = Integer.parseInt(String.valueOf(item.get(\intent.putExtra(\
if(searchLinearout != null && searchLinearout.getVisibility()==View.VISIBLE) { searchLinearout.setVisibility(View.GONE); startActivityForResult(intent, arg2);
});
}
}
lv.setCacheColorHint(Color.TRANSPARENT);
lv.setOnItemLongClickListener(new OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView> arg0, View arg1, int arg2, long arg3) { if(deleteId == null) {
deleteId = new ArrayList
}
HashMap item = (HashMap)arg0.getItemAtPosition(arg2); Integer _id = Integer.parseInt(String.valueOf(item.get(\RelativeLayout r = (RelativeLayout)arg1;
ImageView markedView = (ImageView)r.getChildAt(2);// if(markedView.getVisibility() == View.VISIBLE) { markedView.setVisibility(View.GONE); deleteId.remove(_id);
}
35
滁州学院毕业论文
else {markedView.setVisibility(View.VISIBLE);
deleteId.add(_id); }
}
return true; });
Drawable bgDrawable = getResources().getDrawable(R.drawable.list_bg); lv.setSelector(bgDrawable); }
/*定义界面跳转的参数*/
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(deleteId != null) {
deleteId.clear();
//清除deleteId的内容
}/*当resultCode==3时代表添加了一个用户返回,当resultCode==4的时候代表修改了用户,
或者删除了用户,其他条件代表数据没有变化*/
if(resultCode == 3 || resultCode == 4) { DBHelper helper = new DBHelper(this); list = helper.getAllUser(privacy); dapter = new SimpleAdapter(
this, list,
R.layout.listitem,
new String[]{\
new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
if(list.size() > 0){ }
mainLinearLayout.setBackgroundDrawable(null);
}
lv.setAdapter(adapter);
/* resultCode只有3、4、5,当等于4或者5的时候,代表由UserDetail转过来的。在转向
UserDetail的时候,requestCode的值设置的是选中项的位置 */
if(resultCode == 3) { lv.setSelection(list.size());
} else {
lv.setSelection(requestCode);
}
36