613352322毕业设计(论文)基于android平台下通讯录的设计与开发.doc

上传人:仙人指路1688 文档编号:2393543 上传时间:2023-02-17 格式:DOC 页数:76 大小:4.56MB
返回 下载 相关 举报
613352322毕业设计(论文)基于android平台下通讯录的设计与开发.doc_第1页
第1页 / 共76页
613352322毕业设计(论文)基于android平台下通讯录的设计与开发.doc_第2页
第2页 / 共76页
613352322毕业设计(论文)基于android平台下通讯录的设计与开发.doc_第3页
第3页 / 共76页
613352322毕业设计(论文)基于android平台下通讯录的设计与开发.doc_第4页
第4页 / 共76页
613352322毕业设计(论文)基于android平台下通讯录的设计与开发.doc_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《613352322毕业设计(论文)基于android平台下通讯录的设计与开发.doc》由会员分享,可在线阅读,更多相关《613352322毕业设计(论文)基于android平台下通讯录的设计与开发.doc(76页珍藏版)》请在三一办公上搜索。

1、 实习设计说明书题目: 基于Android平台通讯录的开发与设计系 名 计算机科学与工程系 专 业 计算机科学与技术 年 级 08级 1班 姓 名 指导教师 第一章 引言1.1 编写目的本文旨在将该项目做具体分析,介绍选题目的,概括说明该系统的运行,详细介绍项目情况,并且将该项目做一整体说明。1.2 背景随着android技术的出现,越来越多的手机开发商采用android操作系统,于是android通讯录的开发也变的必不可少。1.3 目标本次项目的开发旨在通过android技术实现手机通讯录的基本功能,方便手机用户对联系人的管理。第二章 系统功能分析该系统需要实现以下基本功能,下面分别对一些主

2、要功能模块进行介绍。2.1新用户的添加功能 对于新的联系人,手机用户可以添加新联系人的头像,姓名,手机号码,办公室电话,家庭电话,职务职称,单位名称,地址,邮政编码,Email,其他联系方式,备注这些信息。2.2查找联系人 可以输入联系人名字或者手机来查找联系人的信息,方便用户快速找到联系人,查询结果显示在当前页。2.3.删除联系人 通过长点击来删除要删除的联系人。2.4 修改联系人。 可以根据需要修改联系人的所有信息。2.5.菜单功能 菜单功能里包括显示所有,删除所有,备份数据,还原数据,更新和后退。 显示所有是把当前通讯录里所有的联系人都显示出来;删除所有是快速删除所有好友;备份数据是将要

3、备份的联系人信息备份到其他文件夹以防彻底丢失联系人信息;还原数据可以将备份数据以覆盖,添加方式还原到通讯录。2.6 系统需求分析第三章 系统概要设计系统设计阶段的主要任务是将需求分析阶段所总结出来的反映了用户需求的系统逻辑模型转换成可以实施的物理模型,主要解决如何去做的问题。3.1系统功能结构设计根据需求分析结果,通讯录有如下功能。 3.2数据库逻辑结构设计表3.2-1 联系人信息表 表3.2-2 查询信息表第四章 系统详细设计与实现本系统实现了手机通讯录对联系人的增删改查,以及备份,还原,隐私保护等功能,下面就此做详细介绍。4.1.1 添加新的联系人。用户可以添加新联系人的头像,用户名,头像

4、,姓名,手机号码,办公室电话,家庭电话,职务职称,单位名称,地址,邮政编码,Email,其他联系方式,备注这些信息。其中联系人的头像可进行如下选择。添加成功后,主页如图显示联系人。 点击设置按钮,出现下图五个按钮功能。 4.1.2 查找联系人。4.1.3 删除联系人。 如果没有长点击删除,则如下图: 删除时会出现删除对话框,询问用户是否删除,点击确定就会删除联系人。 4.1.4 修改联系人。 点击通讯录中的一个联系人,点击修改才可修改联系人的所有信息。4.1.5 菜单功能 点击菜单,则出现如下操作:点击删除所有,如下图: 点击备份,出现如下对话框: 备份成功,则显示如下对话框: 点击还原按钮,

5、则显示如下对话框: 点击更新,如下图: 确定后,则显示下图:点击确定后,则进入秘密仓库,如下图: 4.1.6 其他功能(打电话,发短信,发邮件) 其中打电话还可以在多个号码中选择要拨打的电话,如下图: 4.2详细代码实现如下:数据库代码:package com.gaomeiyun.contact.db;import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import java.u

6、til.ArrayList;import java.util.HashMap;import com.gaomeiyun.contact.entity.User;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.os.Environme

7、nt;public class DBHelper public static final String DB_DBNAME=contact;public static final String DB_TABLENAME=user;public static final int VERSION = 4;public static SQLiteDatabase dbInstance; private MyDBHelper myDBHelper;private StringBuffer tableCreate;private Context context;public DBHelper(Conte

8、xt context) this.context = context;public void openDatabase() if(dbInstance = null) myDBHelper = new MyDBHelper(context,DB_DBNAME,VERSION);dbInstance = myDBHelper.getWritableDatabase();/* * 往数据库里面的user表插入一条数据,若失败返回-1 * param user * return 失败返回-1 */public long insert(User user) ContentValues values =

9、 new ContentValues();values.put(name, user.username);values.put(mobilephone, user.mobilePhone);values.put(officephone, user.officePhone);values.put(familyphone, user.familyPhone);values.put(address, user.address);values.put(othercontact, user.otherContact);values.put(email,user.email);values.put(pos

10、ition, user.position);values.put(company, pany);values.put(zipcode, user.zipCode);values.put(remark, user.remark);values.put(imageid, user.imageId);values.put(privacy, user.privacy);return dbInstance.insert(DB_TABLENAME, null, values);/* * 获得数据库中所有的用户,将每一个用户放到一个map中去,然后再将map放到list里面去返回 * param priva

11、cy * return list */public ArrayList getAllUser(boolean privacy) ArrayList list = new ArrayList();Cursor cursor = null;if(privacy) cursor = dbInstance.query(DB_TABLENAME, new String_id,name,mobilephone,officephone,familyphone,address,othercontact,email,position,company,zipcode,remark,imageid, privacy

12、=1, null, null, null, null); else cursor = dbInstance.query(DB_TABLENAME, new String_id,name,mobilephone,officephone,familyphone,address,othercontact,email,position,company,zipcode,remark,imageid, privacy=0,null, null, null, null); while(cursor.moveToNext() HashMap item = new HashMap();item.put(_id,

13、 cursor.getInt(cursor.getColumnIndex(_id);item.put(name, cursor.getString(cursor.getColumnIndex(name);item.put(mobilephone, cursor.getString(cursor.getColumnIndex(mobilephone);item.put(officephone, cursor.getString(cursor.getColumnIndex(officephone);item.put(familyphone, cursor.getString(cursor.getC

14、olumnIndex(familyphone);item.put(address, cursor.getString(cursor.getColumnIndex(address);item.put(othercontact, cursor.getString(cursor.getColumnIndex(othercontact);item.put(email, cursor.getString(cursor.getColumnIndex(email);item.put(position, cursor.getString(cursor.getColumnIndex(position);item

15、.put(company, cursor.getString(cursor.getColumnIndex(company);item.put(zipcode, cursor.getString(cursor.getColumnIndex(zipcode);item.put(remark, cursor.getString(cursor.getColumnIndex(remark);item.put(imageid, cursor.getInt(cursor.getColumnIndex(imageid);list.add(item);return list;public void modify

16、(User user) ContentValues values = new ContentValues();values.put(name, user.username);values.put(mobilephone, user.mobilePhone);values.put(officephone, user.officePhone);values.put(familyphone, user.familyPhone);values.put(address, user.address);values.put(othercontact, user.otherContact);values.pu

17、t(email,user.email);values.put(position, user.position);values.put(company, pany);values.put(zipcode, user.zipCode);values.put(remark, user.remark);values.put(imageid, user.imageId);dbInstance.update(DB_TABLENAME, values, _id=?, new StringString.valueOf(user._id);public void delete(int _id) dbInstan

18、ce.delete(DB_TABLENAME, _id=?, new StringString.valueOf(_id);public void deleteAll(int privacy) dbInstance.delete(DB_TABLENAME, privacy=?, new StringString.valueOf(privacy);public int getTotalCount() Cursor cursor = dbInstance.query(DB_TABLENAME, new Stringcount(*), null, null, null, null, null);cur

19、sor.moveToNext();return cursor.getInt(0);public ArrayList getUsers(String condition, boolean privacy) ArrayList list = new ArrayList();String strSelection = ;if(privacy) strSelection = and privacy = 1; else strSelection = and privacy = 0;String sql = select * from + DB_TABLENAME + where 1=1 and (nam

20、e like % + condition + % +or mobilephone like % + condition + % or familyphone like % + condition + % +or officephone like % + condition + %) + strSelection;Cursor cursor = dbInstance.rawQuery(sql, null);while(cursor.moveToNext() HashMap item = new HashMap();item.put(_id, cursor.getInt(cursor.getCol

21、umnIndex(_id);item.put(name, cursor.getString(cursor.getColumnIndex(name);item.put(mobilephone, cursor.getString(cursor.getColumnIndex(mobilephone);item.put(officephone, cursor.getString(cursor.getColumnIndex(officephone);item.put(familyphone, cursor.getString(cursor.getColumnIndex(familyphone);item

22、.put(address, cursor.getString(cursor.getColumnIndex(address);item.put(othercontact, cursor.getString(cursor.getColumnIndex(othercontact);item.put(email, cursor.getString(cursor.getColumnIndex(email);item.put(position, cursor.getString(cursor.getColumnIndex(position);item.put(company, cursor.getStri

23、ng(cursor.getColumnIndex(company);item.put(zipcode, cursor.getString(cursor.getColumnIndex(zipcode);item.put(remark, cursor.getString(cursor.getColumnIndex(remark);item.put(imageid, cursor.getInt(cursor.getColumnIndex(imageid);list.add(item);return list;public void deleteMarked(ArrayList deleteId) S

24、tringBuffer strDeleteId = new StringBuffer();strDeleteId.append(_id=);for(int i=0;ideleteId.size();i+) if(i!=deleteId.size()-1) strDeleteId.append(deleteId.get(i) + or _id=); else strDeleteId.append(deleteId.get(i);dbInstance.delete(DB_TABLENAME, strDeleteId.toString(), null);System.out.println(strD

25、eleteId.toString();public void backupData(boolean privacy) StringBuffer sqlBackup = new StringBuffer();Cursor cursor = null;if(privacy) cursor = dbInstance.query(DB_TABLENAME, new String_id,name,mobilephone,officephone,familyphone,address,othercontact,email,position,company,zipcode,remark,imageid,pr

26、ivacy, privacy=1, null, null, null, null); else cursor = dbInstance.query(DB_TABLENAME, new String_id,name,mobilephone,officephone,familyphone,address,othercontact,email,position,company,zipcode,remark,imageid,privacy, privacy=0,null, null, null, null); while(cursor.moveToNext() sqlBackup.append(ins

27、ert into + DB_TABLENAME + (name,mobilephone,officephone,familyphone,address,othercontact,email,position,company,zipcode,remark,imageid,privacy).append( values ().append(cursor.getString(cursor.getColumnIndex(name).append(,).append(cursor.getString(cursor.getColumnIndex(mobilephone).append(,).append(

28、cursor.getString(cursor.getColumnIndex(officephone).append(,).append(cursor.getString(cursor.getColumnIndex(familyphone).append(,).append(cursor.getString(cursor.getColumnIndex(address).append(,).append(cursor.getString(cursor.getColumnIndex(othercontact).append(,).append(cursor.getString(cursor.get

29、ColumnIndex(email).append(,).append(cursor.getString(cursor.getColumnIndex(position).append(,).append(cursor.getString(cursor.getColumnIndex(company).append(,).append(cursor.getString(cursor.getColumnIndex(zipcode).append(,).append(cursor.getString(cursor.getColumnIndex(remark).append(,).append(curs

30、or.getInt(cursor.getColumnIndex(imageid).append(,).append(cursor.getInt(cursor.getColumnIndex(privacy).append();).append(n);saveDataToFile(sqlBackup.toString(),privacy);private void saveDataToFile(String strData,boolean privacy) String fileName = ;if(privacy) fileName = priv_data.bk; else fileName =

31、 comm_data.bk;try String SDPATH = Environment.getExternalStorageDirectory() + /;File fileParentPath = new File(SDPATH + zpContactData/);fileParentPath.mkdirs();File file = new File(SDPATH + zpContactData/ + fileName);System.out.println(the file previous path = + file.getAbsolutePath();file.createNew

32、File();System.out.println(the file next path = + file.getAbsolutePath();FileOutputStream fos = new FileOutputStream(file);fos.write(strData.getBytes();fos.flush(); catch (IOException e) e.printStackTrace();public void restoreData(String fileName) try String SDPATH = Environment.getExternalStorageDir

33、ectory() + /;File file = null;if(fileName.endsWith(.bk) file = new File(SDPATH + zpContactData/+ fileName); else file = new File(SDPATH + zpContactData/+ fileName + .bk);BufferedReader br = new BufferedReader(new FileReader(file);String str = ;while(str=br.readLine()!=null) System.out.println(str);d

34、bInstance.execSQL(str); catch(Exception e) e.printStackTrace();public boolean findFile(String fileName) String SDPATH = Environment.getExternalStorageDirectory() + /;File file = null;if(fileName.endsWith(.bk) file = new File(SDPATH + zpContact/+fileName); else file = new File(SDPATH + zpContact/+fil

35、eName + .bk);if(file.exists() return true; else return false;class MyDBHelper extends SQLiteOpenHelper public MyDBHelper(Context context, String name,int version) super(context, name, null, version);Overridepublic void onCreate(SQLiteDatabase db) tableCreate = new StringBuffer();tableCreate.append(c

36、reate table ) .append(DB_TABLENAME) .append( () .append(_id integer primary key autoincrement,) .append(name text,) .append(mobilephone text,) .append(officephone text,) .append(familyphone text,) .append(address text,) .append(othercontact text,) .append(email text,) .append(position text,) .append

37、(company text,) .append(zipcode text,) .append(remark text,) .append(imageid int,) .append(privacy int ) .append();System.out.println(tableCreate.toString();db.execSQL(tableCreate.toString();Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) String sql = drop table if e

38、xists + DB_TABLENAME;db.execSQL(sql);myDBHelper.onCreate(db);用户信息:package com.gaomeiyun.contact.entity;import java.io.Serializable;public class User implements Serializable public int _id;public String username;public String mobilePhone;public String officePhone;public String familyPhone;public Stri

39、ng position;public String company;public String address;public String zipCode;public String email;public String otherContact;public String remark;public int imageId;public int privacy;/1代表隐私用户 0代表普通用户添加新用户:package com.gaomeiyun.contact;import android.app.Activity;import android.app.AlertDialog;impor

40、t android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.view.animation.AnimationUtils;impo

41、rt android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.Gallery;import android.widget.ImageButton;import android.widget.ImageSwitcher;import android.widget.ImageView;import android.widget.Toast;import android.widget.Ad

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号