




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉工程大学邮电与信息工程学院武汉工程大学邮电与信息工程学院 毕业设计(论文)毕业设计(论文) 基于基于 Android 的手机通讯录的设计与实现的手机通讯录的设计与实现 Design and Implementation of Mobile Phone Contacts Based on Android 学生姓名 学 号 专业班级 指导教师 年年 月月 武汉工程大学邮电与信息工程学院毕业设计(论文) 作者声明作者声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术 道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了 谢意。如本毕业设计(论文)引起的法律结果完全由本人承担。 毕业设计(论文)成果归武汉工程大学邮电与信息工程学院所有。 特此声明。 作者专业: 作者学号: 作者签名: _年_月_日 武汉工程大学邮电与信息工程学院毕业设计(论文) 摘摘 要要 随着第四代通信技术 4G(The 4th Generation Mobile Communication Technology)的推广,无线带宽和传输速度都得到了飞速的提升,手机已经成为人 们日常生活中必不可少的一部分。作为手机最基本的功能通讯,通讯录便显得 更加的重要。手机通讯录本来是为了方便手机用户保存联系人信息,但是现在成 百上千的联系人信息杂乱无章地显示,用户操作及其不便。因此,很需要一款辅 助性通讯录软件来解决这个问题。 本文基于 Android 操作系统,在介绍了通讯录整体结构和框架的基础上,遵 循软件工程的设计思想,以 Eclipse,Android studio 等为开发工具,设计出一款 手机通讯录。本系统包括存储,删除,头像修改,打电话,发信息等功能,增加 通讯录使用起来的方便性。最后对程序进行优化完善、对界面进行设计,获得更 好的用户体验。 关键词:关键词:Android;手机通讯录;Java 武汉工程大学邮电与信息工程学院毕业设计(论文) Abstract With the 4G promotion of fourth-generation conmmunications technology, wireless bandwidth and transmission speed have been improved significantly.At the same time, with the increasing contact need between people, mobile phone is one indispensable for people lives. As the basic function of mobile phone communication, contacts has play an important role. However,hundreds of communications wore haphazard displayed,thousands of text messages and phone records without induction and the process in the use of operation is extremely inconvenient,difficult to manage such information. So it is urgent to design and implement one system to help manage our contacts Based on the background discuss above,the dissertation starts from the Android system features,and focuses on the design and implementation of this Contact Information Management(CIM)SystemThe design, including functions od storage, deletion, head revision, phone calls, messages sending and other functions, to meet user demand for contacts. The design of the contacts follows the standard development process, the first needs analysis, and then determine the function of the contacts, then write the code, the debugger, run the program, and procedures to optimize the sound. This software provides a variety of components to design the interface, can support the user experience. Key Words: Android; Contact; Java 武汉工程大学邮电与信息工程学院毕业设计(论文) 目目 录录 第第 1 章章 绪论绪论1 1.1 课题研究背景 1 1.2 本文主要工作 1 第第 2 章章 ANDROID 技术简介技术简介3 2.1 什么是 ANDROID3 2.2 ANDROID系统架构.4 2.3 应用程序组件 .5 第第 3 章章 需求分析需求分析.8 3.1 课题总体目标 .8 3.2 功能需求分析 .8 3.3 非功能需求分析 .9 第第 4 章章 系统设计系统设计.11 4.1 功能模块的划分 .11 4.2 文本信息管理 .13 第第 5 章章 通讯录实现通讯录实现.15 5.1 ANDROID开发平台搭建.15 5.2 具体功能实现15 5.2.1 增加联系人功能.16 5.2.2 添加头像功能.18 5.2.3 保存联系人信息.20 5.2.4 绘制主界面.22 5.2.5 通信功能.23 武汉工程大学邮电与信息工程学院毕业设计(论文) 第第 6 章章 总结与展望总结与展望.25 参考文献参考文献26 致谢致谢.27 武汉工程大学邮电与信息工程学院毕业设计(论文) 1 第第 1 章章 绪论绪论 Android 操作系统最初由 Andy Rubin 开发,最初主要支持手机。2005 年由 Google 收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领 域上。截至到目前为止,Android 的主要竞争对手是苹果公司的 iOS 以及微软公 司的 Windows Phone。1 1.11.1 课题研究背景课题研究背景 Android 的崛起,使其更加广泛地被作为智能手机的操作系统。在 2012 年 2 月,Android 占据全球智能手机操作系统市场 52.5%的份额,中国市场占有率为 68.4%。2Android 的成功,并不是什么巧合,Android 所获得的成就,有 2 个重 要方面:1.Android 是一款开放源码的操作系统;因此,人人都有可能成为 Android 的开发人员,这样使得 Android 的应用丰富多彩。2.Android 注重用户体 验;用户体验的提高,使得操作变得更加的简单方便。 通讯录作为手机最基本的功能之一,但是手机上成百上千的联系人信息杂乱 无章的显示着,给用户造成了很多的不便,大大降低了通讯录的可使用性。因此, 需要设计一款辅助软件来管理通讯录,提高通讯录的使用效率以及使用户更加方 便地识别联系人。 本论文所设计与开发出的这款基于 Android 手机的通讯录,在保存联系人信 息的基础上加入通讯录头像这样个性的功能,方便用户管理通讯录。 1.21.2 本文主要工作本文主要工作 本文的研究工作是设计与实现一个 Android 平台下的通讯录系统。论文将从 Android 系统特性入手,首先介绍了系统研发所使用的若干关键技术和原理,让 读者能在技术层面上全面了解系统;接着,遵循软件工程的相关开发思想,围绕 通讯录联系人模块,对系统实现方面进行介绍,包括需求分析、概要设计、具体 功能设计等。最后,实现通讯录在 Android 手机上的运行。 本课题研究的通讯录是基于 Android studio 开发环境的。根据软件的架构, 武汉工程大学邮电与信息工程学院毕业设计(论文) 2 以及通讯录的设计方案;采用 Java 开源的 JAR 包对 XML 文件进行分析和获取图 片和文字信息;对各个界面的布局和实现方式进行详细说明;对联系人信息中头 像更换的实现方式进行了详细说明;响应 Menu 键的触发事件,设置底部菜单是 否可见,并通过对底部菜单选项的监听实现底部菜单中的增加、查找、删除、菜 单、退出等功能,其中菜单包括显示所有、删除所有、号码备份等功能。 武汉工程大学邮电与信息工程学院毕业设计(论文) 3 第第 2 章章 Android 技术技术简介简介 Android 这个名字对于人们已经不陌生了,大家都知道是手机上的安卓操作 系统,但是它的由来很少有人知道。Android 这个词最早出现在美国科幻小说中, 翻译过来的意思是“机器人” 。在 2005 年,从 Google 并购一家成立仅 22 个月的 手机软件开发商Android 开始,在这之后 Google 又并购手机交友网站 Dodgeball,开通 Short Message Service(SMS)短信搜寻功能,参与竞标 700MHz 通信频带的使用权。直到 2007 年 11 月 5 日,Google 发表 Android SDK (Software Development Kit)软件开发组件之后,Android 便开始走进了人们的生 活。3 2.12.1 什么是什么是 AndroidAndroid Android,中文翻译为“安卓” ,是一款基于 Linux 平台的开源手机操作系统 的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为 移动终端打造的真正开放和完整的移动软件。它采用软件堆层(Software Stack, 又名软件叠层)的架构,主要分为三部分:底层以 Linux 内核工作为基础,由 C 语言开发,只提供基本功能;中间层包括函数库 Library 和虚拟机 Virtual Machine,由 C+开发。最上层是各种应用软件,包括通话程序,短信程序等, 应用软件则由各公司自行开发,以 Java 作为编写程序的一部分,不存在任何以往 阻碍移动产业创新的专有权障碍。4 对于设备制造商来说,Android 是一个免费的平台。对硬体开发厂商来说, Android 是个开放的平台。只要厂商有能力,可以在这个平台上自由加入特有的 装置或功能,不受手机作业系统厂商的限制。对于手持装置的开发者来说, Android 是个先进的平台。平台上的应用程式可相容于各种型号的 Android 手机, 免去为各种不同手机机型开发的困扰。Android 平台支援各种先进的网络、绘图、 3D 处理能力,可以用来提供更好的使用者体验。Android 它的开放性就优于其它 封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功 能重新编写。这使得越来越多的人关注这个操作系统。 武汉工程大学邮电与信息工程学院毕业设计(论文) 4 对于这样的一个免费并且开放的手机开发平台,实现了开发商、硬件商和消 费者之间的双赢。Android 的出现绝对是 21 世纪初期的一大绝响。 2.22.2 AndroidAndroid 系统系统架构架构 Android 是以 Linux 为基础建构的手机操作系统,因此 Android 延续了嵌入式 Linux 系统的结构特点。其系统架构包含了四个主要层次。Android 操作系统的底 层是 Linux Kernel,采用 Linux Kernel 2.6 版,负责硬件的驱动程序、网络、电源、 系统安全以及内存管理等功能。往上的第二层是 Library(函数库)部分,由大多 数开发源代码的函数库组成,例如标准的 C 函数库 Libc、OpenSSL、SQLite 等, 网页函数库 WebKit 负责 Android 网页浏览器的运行,另外还有 2D SGL/3D OpenGL 图形与多媒体函数库分别支持各种影音与图形文字的播放,例如 MPEG4、H.264、MP3、AAC、AMR、JPG 和 PNG 等多媒体文件格式。 和第二层函数库并行的是 Android Runtime,在此提供 Android 特有的 Java 内 核函数库与可转换 Java 运行码 Bytecode,为 Android 专属的 Dalvik Executable(.dex)文件格式的 Dalvik 虚拟机器,可以通过 Java 语言编写 Android 应用程序,并在 Android 平台上同时运行多个 Java 应用程序。 第三层则是 Application Framework(应用软件架构) ,它是所有 Android 重点 应用程序 Framework API 的总集合,主要的目的是让程序开发者可以方便地使用 这些常用的应用程序进行设计架构,以便快速地开发 Android 应用程序,而这些 常见的 API 有显示功能(如消息方块、条列消息、按钮、内嵌式浏览器等) 、消 息提供功能(如访问信息,分享信息) 、资源管理(如图形、地方化字符串、布 局文件等) 、提示消息(主要用来显示警告消息,特别是当使用者操作错误时) 等。5 在 Android 系统架构的最上层则是 Java 应用程序,例如 Google Maps、E- mail、即时通信工具、计算机、浏览器、通讯本、MP3 播放器等应用程序。如图 2.1 所示。 武汉工程大学邮电与信息工程学院毕业设计(论文) 5 图图 2.1 Android 系统架构系统架构 2.32.3 应用程序组件应用程序组件 对于一个 Android 应用程序来说,是由 Activity、Service、Broadcast Receiver、Content Provider 四部分组成,但并不是每一个 Android 应用程序都必 须由这四部分组成。在应用程序中使用时,需要在配置文件 AndroidMainfest.xml Application Framework(应用软件架构)(应用软件架构) View System Windows Manager Activity Manager Content Providers 软件组件电话管理资源管理位置管理提示管理 Android Runtime Android Libraries Dalvik 虚拟机器 Library(函数库)(函数库) Surface Manager Media Framework SQLite OpenGL FreeType WebKit SGLOpenSSLLibc Linux Kernel 硬件驱动电源管理Wi-Fi 网络内存管理相机驱动 Application(应用程序)(应用程序) 文件管理浏览器照相程序通讯本电话 武汉工程大学邮电与信息工程学院毕业设计(论文) 6 中进行配置。这个配置文件是每个 Android 应用程序所必需的,用于定义应用程 序的组件、组件的功能以及必要条件等。 1. Activity(活动) Activity 是构成应用程序中最重要的构造块, 在 Android 应用程序中 Activity 主要负责的就是创建与用户进行交互的显示窗口,一个或多个 Activity 组成一个 用户界面,你可以在这些窗口里通过调用 setContentView(View)方法来显示你自 己的用户界面,但是每个 Activity 都是独立的,并且继承 Activity 类。活动 (Activity)在系统中以活动栈的形式进行管理。当一个新的活动启动后,被放到了 栈顶,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直 到新的活动退出才重新回到前台。6Activity 生命周期如图 2.2 所示。 图图 2.2 Activity 生命周期图生命周期图 onCreate() onStart() onPause() New activity is started onResume() Your Activity is no long visible Onstop() onDestroy( ) Activity is shut down Activity is running Activity starts User navigates back to your activity Process is killed Other application need memory onRestart() Your Activity comes to the foreground Your Activity comes to the foreground 武汉工程大学邮电与信息工程学院毕业设计(论文) 7 2. Service(服务) 一个 Service 组件是运行在后台的一个进程,这个进程处理一个长时间的操 作或者是一个远程调用。一个 Service 不需要提供一个用户界面。比如,一个 Service 可以在用户运行一个不同程序的同时在后台播放音乐,或者在不阻塞一个 Activity 的用户界面的同时获取网络数据。因此相应的 Activity 会启动一个 Service,当用户离开窗体后,Service 继续保持歌曲的播放。 跟 Activity 以及其他组件一样,Services 运行在应用程序的主线程。因此他们 不会阻塞其他的组件或者用户界面。通常在服务中启用另外的线程来做耗时的工 作。 3. Broadcast receivers(广播接收者) Broadcast receiver 是一个接收并处理广播通知的组件。多数的广播是系统发 起的,如地域变换、电池电量不足、图片获取、语言转换。程序也可以初始化一 个广播(即事件),例如告诉其他的程序某些数据已经下载。程序可以拥有任意数 量的 broadcast receiver 来对应各种通知。所有的 receivers 继承自 BroadcastReceivcr 类。 Broadcast receiver 没有界面显示,只负责监听、接收广播消息,然后根据程序 逻辑,启动其他组件去处理广播消息。它可以启动一个 Activity 来同用户交互。 4. Content providers(内容提供者) Content provider 用于创建应用程序使用的数据集。数据可存在系统的 SQLite 数据库。Content provider 继承 ContentProvider 类,实现一组标准的方法,来便于 应用程序存取数据。但是,程序并不是直接调用这些方法,而是使用 ContentResolver 对象来调用这些方法。ContentResolve 的作用是管理 provider 和 程序之间的多进程交互。 武汉工程大学邮电与信息工程学院毕业设计(论文) 8 第第 3 章章 需求分析需求分析 对通讯录中需要要解决的问题进行详细的分析,弄清楚问题的要求,包括需 要输入什么数据,要得到什么结果,最后应输出什么,以及要达到什么样的效果。 从用户对软件的需求出发,系统分析软件的功能以及实现过程所需要做的所有工 作,主要定义了手机通讯录管理工具的需求。 3.13.1 课题总体目标课题总体目标 本课题将从用户使用角度出发,完成一个功能齐全、使用便捷、用户界面美 观大方的手机通讯录应用系统。为方便用户的管理,让联系人信息和头像一目了 然;简化用户进行增加、删除、修改、查找操作;并且具备更改头像的功能;拥 有美观、简洁、方便的通讯录主界面。 总体目标功能如下: (1) 查看功能:显示出所有联系人数据中的姓名、电话号码和头像等详细信 息。 (2) 增加功能:能快速、便捷地录入新数据,包括:姓名、电话号码等。 (3) 拨号功能:选中某个名字时,屏幕显示出此人的电话号码中的各个数字。 (4) 修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (5) 删除功能:选中某个人的姓名时,可对此人的相应数据进行删除。 (6) 菜单功能:采用文本菜单界面。 (7) 查询功能:能通过输入姓名或者电话号码查询此人的详细信息。 (8) 备份功能:复制保存手机上已经储存的联系人内容于 SD 卡上,以备还原。 (9) 还原功能:将备份好的信息还原到手机通讯录之中。 武汉工程大学邮电与信息工程学院毕业设计(论文) 9 3.23.2 功能需求分析功能需求分析 本文所设计的手机通讯录可以分成三个主要部分,如图 3.1 所示。 图图 3.1 系统用例图系统用例图 (1) 主界面:主界面包括显示已保存的联系人信息,以及显示底部的菜单框。 做到界面简洁大方,用户使用方便。 (2) 增/删/改联系人信息:包括组操作与联系人操作。用户组的增加、删除、 修改;联系人的增加、删除、修改、查询;增加联系人的功能是本论文 的重点,并在其中加入了添加联系人头像的功能。 (3) 备份/还原联系人信息:对已保存的联系人信息进行备份保存,在联系人 被误删和联系人信息资料丢失的时候进行还原。确保本款通讯录软件的 实用性。 3.33.3 非功能需求分析非功能需求分析 由于这是手机应用程序的开发,手机自身硬件的约束,真正要使产品具备竞 用户 主界面 增/删/改联系人 信息 备份/还原联系 人信息 System 武汉工程大学邮电与信息工程学院毕业设计(论文) 10 争力,必须在性能等方面高人一等,这方面的要求如下: (1) 易操作:操作界面简洁直观,符合普通人的操作习惯,使完成各功能所 需要的步骤和流程大大的减少; (2) 运行流畅:快捷的显示界面功能,最大限度的减少界面之间转换的停滞 时间,提高列表获取和操作界面跳转的时间; (3) 良好的用户体验:对用户的错误操作进行提醒和纠错;由于部分操作可 能需要较长的执行时间,所以在进行这些操作的时候进行相应的提醒, 增加用户使用友好度。 (4) 系统资源消耗低:合理的进行资源分配、回收、有效地利用系统资源, 禁止死锁现象的发生; (5) 减少软件运行错误:软件在终端上运行时可能会有闪退现象,整理程序 的顺序和程序中存在的错误,尽量避免闪退的发生。 武汉工程大学邮电与信息工程学院毕业设计(论文) 11 第第 4 章章 系统设计系统设计 一个好的系统设计决定了程序是否能按照设计者的目的按时完成,是否能在 规定的时间内按照设计者的要求高质量的完成程序必要的功能。并且按照标准的 设计步骤对程序进行调试,测试,以及后期的优化完善等工作,使程序具有健壮 性和可用性。通过对通讯录功能、系统模块、用户需求方面进行全方位的分析制 定开发流程,开发流程如图 4.1 所示。 图图 4.1 开发流程图开发流程图 4.1 1 功能模块的划分功能模块的划分 图图 4.2 系统功能模块划分系统功能模块划分 图 4.2 是整个系统的功能划分图,其功能主要包括以下几方面内容: 1. 增加、删除、编辑联系人 点击通信录功能界面中的增加按钮,进入增加联系人界面。输入联系人的基 调查 研究 确定 功能 编写 程序 调试 程序 运行 测试 优化 完善 联系人列表 详细信息 修 改 删 除 返 回 增 加 查 找 退 出 菜 单 显示所有 删除所有 删 除 武汉工程大学邮电与信息工程学院毕业设计(论文) 12 本信息,并可根据用户需求增加个性化信息如头像、姓名、手机号码、办公室电 话、家庭电话、职务职称、单位名称、地址、Email 这些信息,单击确认返回主 界面。点击通信录中一个已存在的联系人,进入联系人编辑界面,可修改联系人 的资料或进行删除联系人操作,完成后退回到主界面。对列表中联系人的标记, 点击 Menu 键弹出功能界面上的删除按键也可进行删除。还可以在菜单上选择删 除全部联系人来清空通讯录。在删除联系人的过程中,系统将提示用户是否继续 操作,若放弃操作,则联系人信息将继续保存。 2. 查找联系人 用户点击 Menu 键打开底部菜单框,底部菜单框为查询联系人提供入口,进 入通讯录的缺省页面为联系人列表,在列表中看到所有联系人的姓名、电话信息 排列,用户点击查找按键输入联系人基本信息,通讯录显示所有符合查询条件的 联系人列表,用户选择一个联系人进入联系人基本信息页面进行其他操作;查询 完成,用户按返回键返回主界面。 3. 通讯功能 用户在通讯录选择联系人进入联系人详细信息界面,这时点击 Menu 键打开 通信功能框,选择打电话、发信息还是发邮件的功能进行操作。 4. 菜单功能 通过对 Menu 按键的点击,显示底部菜单框,包含有增加、查找、删除、菜 单、返回功能,菜单按键则包含显示所有、删除所有、备份 SD 卡等实用功能。 通过对系统的功能结构的分析,设计后系统运行流程是系统运行后用户将进 入通讯录主界面,可以看到联系人列表。通过点击 MENU 界面的增加功能选项 可以新增联系人,通过查找按钮可以对联系人进行姓名、号码的操作,通过选择 联系人并点击删除键可以对联系人进行删除操作,通过菜单功能可以显示所有联 系人、删除所有联系人、并备份 SD 卡功能。在联系人详细信息界面点击 Menu 键弹出通讯功能框选择拨打电话按钮或者发信息发邮件按键。 系统的运行流程图如 4.3 所示。 武汉工程大学邮电与信息工程学院毕业设计(论文) 13 初始化 显示联系人列表 通过菜单键进行操作 不同的选项操作 具体的操作 返回手机功能界面 结束 开始 操作是否结束 YES NO 图图 4.3 系统运行流程系统运行流程 4.24.2 文本信息文本信息管理管理 本系统为了实现文本管理功能,需要建立文本信息表 database,文本信息表 database 中需要包含的属性有 id,name,mobilephone,officephone,familyphone,address,email,company,i mageid,文本信息表 database 如表 4.1 所示: 武汉工程大学邮电与信息工程学院毕业设计(论文) 14 表表 4.1 文本信息表文本信息表 database 属性数据类型说明 idInteger自动增加的主键 NameInteger姓名 MobilephoneString手机号 OfficephoneString办公室号 FamilyphoneString家庭号码 AddressString 地址 EmailString邮箱 CompanyString公司名称 ImageidInteger图片号 程序中将建立的名为”User”的数据库所包含的信息和文本信息表中所记录的 消息一致。 武汉工程大学邮电与信息工程学院毕业设计(论文) 15 第第 5 章章 通讯录实现通讯录实现 5.15.1 AndroidAndroid 开发平台搭建开发平台搭建 Android 的开发平台现在有两种:一种是在 Eclipse 上加载 Android SDK,然 户再安装 ADT。虽然这种开发的方法依旧是主流,但是过程常常出现错误,不是 十分方便;第二种则是 Google 新推出的 Android studio 开发软件,这种软件十分 方便,不必加载 Android SDK 也不用单独安装 ADT,安装完成后即可开发。本文 将采用 Android studio 工具进行开发设计。 可以从 Google 的 Android 的开发官网下载最新的 Android studio,网址如下: 装完成之后,根据自己所需要的开发平台进行 ADT 的更新和下载。这样, Android 的基本开发环境便搭载好了。 5.25.2 具体功能实现具体功能实现 打开 Android studio 软件,新建一个 Android Application Project,进行一些基 本设置之后就在页面左侧出现了新建好的工程。如图 5.1。 图图 5.1 工程列表工程列表 武汉工程大学邮电与信息工程学院毕业设计(论文) 16 其中 src 是用于存放所有的*.java 文件;gen:为 ADT 插件自动生成的代码文 件保存路径,里面的 R.java 将保存所有的资源 ID;res 下有个子目录 layout 是存 放所有的布局文件,主要是用于排列不同的显示组件,在 Android 程序中要读取 此配置。 5.2.1 增加联系人功能增加联系人功能 增加联系人的界面是通讯录的关键界面,目的在于方便用户储存联系人的一 些相关信息。 在增加联系人的相关信息中将会包括联系人头像,联系人姓名、手机号、办 公室电话、家庭电话、职务职称、单位名称、地址、E-mail。并设置保存和返回 两个功能按键在界面的底部。 在 res/layout 下新建一个”addnew.xml”文件,用于增加联系人功能界面的设计。 用(滚动视图控件)和(线性布局控件)将界面分成 两个部分,比重是 4:1。首先设置底部的两个功能键,在中加入两 个控件,两个控件在水平空间分布比重是 1:1。详细代码如下: 武汉工程大学邮电与信息工程学院毕业设计(论文) 17 接着设置增加联系人信息的界面,在控件中加入一个 控件用于编辑滚动视图控件中的界面。头像和姓名放在界面的第 一行,头像用控件建立一个用于更改头像的图形按钮,在水平位置 上加入(接受用户输入信息的控件)用于记录用户姓名的信息,用” android:hint=”命令在无操作的空白输入框里显示灰色的输入提示。接着继续使用 和设置手机号、办公室电话和家庭电话等信息。增加联 系人信息的界面代码如下: 在 src 下建立”AddNewActivity.java”文件,在创建的 Java 文件中调用函数 onCreate( ),在函数中调用 setContentView( view, view),其是可以在 Activity 中动 态切换显示的 View,在括号中加入布局文件”R.layout.addnew”,这样便可以在虚 拟机上运行增加联系人界面。 设置好的增加联系人功能在模拟器上运行那个结果如图 5.2 所示。 图图 5.2 增加联系人界面增加联系人界面 5.2.2 添加头像功能添加头像功能 增加联系人界面中有显示头像的功能,但是功能并没有实现,只是做出来用 于头像使用的位置,本节将实现添加头像功能。 武汉工程大学邮电与信息工程学院毕业设计(论文) 19 在”AddNewActivity.java”中对图片框加入点击命令,调用 setOnClickListener() 函数并在其中创建私有类,使得用户点击头像时弹出窗口并在窗口顶端显示窗口 名“请选择头像” 。 弹出的选择头像窗口需要创建一个窗口布局。在 res/layout 下创建新的” imageswitch.xml”布局文件。在布局文件中使用(相对布局)的 方法,使用实现缩略图的浏览,目的是加大所选头像的显示大小;使用 进行头像图片的切换。具体代码如下所示: 接着回到”AddNewActivity.java”文件中,创建一个私有类加入头像图片,图 片保存在 res/drawable-hdpi 文件目录下。并调用在布局文件中的和 两个控件,使头像能在窗口中进行浏览和选择。调用” builder.setPositiveButton”和”builder.setNetgativeButton”两个函数实现确定显示所选 头像和取消选择的功能。部分重要代码如下: private void initImageChooseDialog() AlertDialog.Builder builder = new AlertDialog.Builder(this); 武汉工程大学邮电与信息工程学院毕业设计(论文) 20 builder.setTitle(“请选择头像“); builder.setPositiveButton(“确定“, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) btn_img.setImageResource(imagesimagePosition); ); builder.setNegativeButton(“ “, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) ); LayoutInflater inflater = LayoutInflater.from(this); View view = inflater.inflate(R.layout.imageswitch,null); gallery = (Gallery) view.findViewById(R.id.img_gallery); gallery.setAdapter(new ImageAdapter(this); gallery.setSelection(images.length/2); is = (ImageSwitcher) view.findViewById(R.id.image_switcher); is.setFactory(new MyViewFactory(this); 图像选择功能在模拟器上运行的效果如图 5.3。 图图 5.3 选择头像功能界面选择头像功能界面 5.2.3 保存联系人信息保存联系人信息 增加联系人信息的功能已经完成,接着就是让通讯录能够记录下保存的联系 武汉工程大学邮电与信息工程学院毕业设计(论文) 21 人信息。 首先建立一个实体类对象来保存信息,在 src 下新建一个”Class”命名” Package”为”com.wanyan.contact.entity”,文件命名为”User.java”在其中录入需要储 存的联系人姓名、头像、手机号、办公室电话等信息。接下来要让“保存”按钮 能够响应,在文件”AddNewActivity.java”中初始化“保存”和“返回”按钮。 保存联系人信息将使用 Android 内置的一个很小的关系型数据库SQLite。 但是在本程序中无法直接使用,使用的是 SQLiteOpenHelper一个辅助类来管理 数据库的创建和版本,可以通过继承这个类来完成一些数据库的操作。其中的 onCreate( )是用于输入建表语句。 表中所记录下的联系人信息变量名要保持一致,否则数据库将会记录错误的 联系人信息。部分代码如下所示: public class DBHelper extends SQLiteOpenHelper public final static String DB_NAME = “contact“; private static final int VERSION = 1; private static DBHelper instance = null; private SQLiteDatabase db; public static DBHelper getInstance(Context context) if(instance = null) instance = new DBHelper(context); return instance; private void openDatabase() if(db = null)db = this.getWritableDatabase(); private DBHelper(Context context) super(context, DB_NAME, null, VERSION); public void onCreate(SQLiteDatabase db) StringBuffer tableCreate = new StringBuffer(); tableCreate.append(“create table user ( _id integer primary key autoincreament,“); 武汉工程大学邮电与信息工程学院毕业设计(论文) 22 tableCreate.append(“name text,“); tableCreate.append(“mobilePhone text,“); tableCreate.append(“officePhone text,“); tableCreate.append(“familyPhone text,“); tableCreate.append(“job text,“); tableCreate.append(“company text,“); tableCreate.append(“address text,“); tableCreate.append(“mail text,“); tableCreate.append(“imageid int )“); db.execSQL(tableCreate .toString(); 5.2.4 绘制主界面绘制主界面 主界面就是打开手机通讯录显示的界面,其中应该包括已经保存的联系人的 信息、功能性菜单界面还有查找联系人的操作框。因此,在布局文件”main.xml” 中将主界面用三个不同的控件创建,分别是:、和 。 是使用列表展示的方法,用于显示已保存的联系人信息; 是通过网格视图的样式来显示功能栏的各功能;则是用来 方便用户输入相关信息来查找已保存的联系人信息。 功能栏并不是直接在主界面显示,需要用户点击”Menu”来响应。在 src 下新 建文件”MainActivity.java”,使用事件 onKeyDown( )来响应用户点击”Menu”事件, 从而在主界面下方显示功能栏。部分重要布局代码如下所示: 5.2.5 通信功能通信功能 为了满足用户在通讯录下的通信功能,在 src 下新建文件”UserDetail.java”, 通过使用 onCreateOptionsMenu( )响应用户点击”Menu”的操作,显示打电话,发 短信和发邮件的三个可选功能菜单。此时触发事件 onMenuItemSelected( ),对通 讯录中存储的电话号码进行筛选并选择电话号码加载,运用了 android 操作系统 武汉工程大学邮电与信息工程学院毕业设计(论文) 24 自定义接口,可以实现用户的打电话、发短信、发邮件的功能。部分重要代码如 下: public boolean onMenuItemSelected(int featureId, MenuItem item) switch(item.getItemId() case Menu.FIRST: status = Intent.ACTION_CALL; if(callData = null) loadAvailableCallData(); if(callData.length = 0) Toast.makeText(this,“没有可用的号码! “,Toast.LENGTH_LONG).show(); else if(callData.length = 1) Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse(“tel:/“ + callData0); startActivity(intent); else initNumChooseDialog(); break; 装载通讯录中号码功能部分重要代码如下: public void loadAvailableCallData() ArrayList callNums = new ArrayList(); if(!user.mobilePhone.equals(“) callNums.add(user.mobilePhone); if(!user.familyPhone.equals(“) callNums.add(user.familyPhone); if(!user.officePhone.equals(“) callNums.add(user.officePhone); 武汉工程大学邮电与信息工程学院毕业设计(论文) 25 callData = new Strin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 红茶知识培训课件
- 专利申请与维护协议
- 红楼梦第5章课件
- 小区周边农业资源合作开发协议
- 2025年高校产学研合作模式下的关键技术转移策略报告
- 2025年新能源行业氢能应用与产业化前景分析报告
- 网络文学IP全产业链开发中的版权问题与风险防范报告
- 2025年跑步运动行业研究报告及未来行业发展趋势预测
- 中级导游等级考试(导游知识专题)能力提高训练题及答案(2025年川省)
- 诊所感染知识培训课件
- 第27课 中国特色社会主义的开创与发展 课件 中外历史纲要(上)
- 护士职业行为规范课件
- 市(县)级温室气体排放源、排放清单报告模板
- T/CACEM 31.5-2023高速公路经营管理第5部分:服务区服务要求
- DB31/T 779-2014学校物业管理服务规范
- 2025年三级调饮师职业技能鉴定理论考试题库(浓缩500题)
- 配网安规培训
- 人教版语文九年级上册教案全集汇编
- 别墅电梯维保协议
- 环洪泽湖生态农业生物技术重点实验室可行性研究报告
- 5A写字楼二次装修管理培训
评论
0/150
提交评论