基于Android系统的通讯录设计文档毕业论文Word下载.docx
- 文档编号:20326623
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:48
- 大小:1.48MB
基于Android系统的通讯录设计文档毕业论文Word下载.docx
《基于Android系统的通讯录设计文档毕业论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于Android系统的通讯录设计文档毕业论文Word下载.docx(48页珍藏版)》请在冰豆网上搜索。
字段
类型
描述
_id
Integer
id
name
Text
姓名
mobileNumber
电话
邮箱
createDate
Long
创建时间
modifyedDate
long
修改时间
company
公司
第三章系统概要设计
1.外部事件
该图描述了通讯录与外部环境的交互,在这个系统中,通过对系统的分析,可以识别出参与者:
用户。
对于用户而言,通讯录上按钮是用户向系统输入的操作请求的输入设备,GUI是用于向用户输出的输出设备。
2.业务流程图:
3.数据增加流程图:
4.数据修改流程图:
5.数据删除流程图:
6.系统用例分析
该图显示了通话记录功能模块,包括了联系人详细信息查看,清空通话记录,在选择一个联系人之后,可以进行拨打电话,发送信息的操作,也可以进行删除。
该图显示了短信记录功能模块的用例。
包括查看短信,发送短信,删除选中的短信记录,清空整个短信记录,其中发送短信包含了新建信息和回复信息。
如果用户是新建信息,发送对象可以自己手动输入对方电话号码,也可以从联系人列表中选取,可以选中多个,如果是自己输入多个,用”;
”分开即可。
该图显示了联系人功能模块的用例。
包括了查看联系人详细信息,编辑联系人信息,新建联系人,对选中的联系人,可以对其进行删除、拨打电话、发送短信的操作。
用户还可以进行联系人搜索,这样方便用户快速找到想的联系人信息。
7.通话记录模块的实现流程图:
通话记录使用户可以查看最近通话记录,在选中某条栏目后,为用户提供了拨打电话、发送短信、删除该记录、查看联系人信息和情况整个记录的功能。
在用户选中此功能后,系统会先调用LastContact类的initComment()函数初始化控件,然后再调用该类的initDate()函数初始化数据,最后通过函数getDate()获得最近通话记录。
因为此系统多个模块都有查看联系人信息、发送短信和拨打电话的操作,所以在设计的时候,将此三个方法写成了静态方法(方法名分别为actionSendMsg,actionDialog,actionCheckInfo,封装在类Action_T中),以此降低程序代码的耦合度。
综上所述,用户在进行拨打电话、发送短信、查看联系人信息的时候,分别会调用actionSendMsg(),actionDialog(),actionCheckInfo()三个方法。
8.短信记录的流程:
该模块主要为用户提供了手机短信方面的功能,包括用户可以查看新收到的短信,可以调用actionSenMsg()方法发送短信,当然,发送短信分为新建短信和回复短信。
当用户选择某一个条目后,可以调用delete()方法删除该短信记录,当然可以调用empet()直接一次性清空整个短信记录。
9.通讯录模块
该模块是系统的主要功能。
当用户进入该功能模块时,程序默认选中第一个条目,当然用户可以任意选中任一条目。
在被选中后,用户可以对该条目进行编辑、拨打电话、发送短信以及删除该联系人的操作。
此外,通过功能键,用户可以新建联系人和搜索联系人。
该功能模块的流程图如图所示:
结束
选则功能
编辑
搜索
发送短信
拨打电话
删除
新建
更新数据库
选中条目
输入搜索条件
输入新建联系人信息后保存
显示搜索结果
第四章类的设计
1.ContactColumn类图
该类主要定义了系统中用到的常量,如contacts表中各字段的名称、各字段在表中的具体索引位置,以提高程序整体的可读性与可维护性。
2.DBHelper类图
该类充当数据库辅助类,主要用于实现数据库的创建工作。
其包含了具体的建库SQL语句。
3.ContactsProvider类图
该类实现了ContentProvide类,封装了对SQLite数据库中contacts表的增删改查操作。
使得具体数据库操作对View层透明。
4.Contacts类图
该类实现了ListActivity类,以列表界面列出了contacts表中所用记录,并提供菜单实现记录的添加与查询操作,提供上下文菜单实现记录的编辑和删除。
5.ContactEditer类图
该类实现了Activity类,主要实现对contacts表中记录进行增删改的界面。
第四章功能实现
1.界面展示:
2.显示所有联系人:
显示的内容为测试时存入。
3.按照关键字搜索联系人:
4.添加新联系人:
添加成功:
5.删除联系人:
6.给联系人拨打电话:
结束通话:
7.向联系人发送信息:
第5章部分代码
1.DatabaseHelper作为一个访问SQLite的助手类,提供两个方面的功能:
第一,getReadableDatabase(),getWritableDatabase()
可以获得SQLiteDatabse对象,通过该对象可以对数据库进行操作;
第二,提供了onCreate()和onUpgrade()两个回调函数,允许我们在创建和升级数据库时,进行自己的操作。
DatabaseHelper.java
packageliu.sqlite3.db;
importandroid.content.Context;
importandroid.database.sqlite.SQLiteDatabase;
importandroid.database.sqlite.SQLiteOpenHelper;
importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
publicclassDatabaseHelperextendsSQLiteOpenHelper{
privatestaticfinalintVERSION=1;
publicDatabaseHelper(Contextcontext,Stringname,CursorFactoryfactory,
intversion){
super(context,name,factory,version);
//TODOAuto-generatedconstructorstub
}
publicDatabaseHelper(Contextcontext,Stringname){
this(context,name,VERSION);
publicDatabaseHelper(Contextcontext,Stringname,intversion){
this(context,name,null,version);
@Override
publicvoidonCreate(SQLiteDatabasedb){
//TODOAuto-generatedmethodstub
System.out.println("
createaDatabase"
);
db.execSQL("
createtableuser(namevarchar(20),phonetext,qqtext,mailtext,addresstext)"
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
updateaDatabase"
}
2.创建新联系人并与SQlite数据库连接起来:
注意:
调用DatabaseHelper对象的getReadableDatabase()方法才能打开SQlite数据库。
packagenet.yxarm;
importjava.util.ArrayList;
importjava.util.HashMap;
importliu.sqlite3.db.DatabaseHelper;
importandroid.app.Activity;
importandroid.content.ContentValues;
importandroid.content.Intent;
importandroid.database.Cursor;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.ContextMenu;
importandroid.view.Menu;
importandroid.view.MenuInflater;
importandroid.view.MenuItem;
importandroid.view.View;
importandroid.view.ContextMenu.ContextMenuInfo;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.Toast;
publicclassAdd_peopleextendsActivity{
privateEditTexteditName=null;
privateEditTexteditPhone=null;
privateEditTexteditQQ=null;
privateEditTexteditEmail=null;
privateEditTexteditAddress=null;
privateButtonbuttonAdd=null;
privateButtonbuttonCancel=null;
publicstaticintn;
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
editName=(EditText)findViewById(R.id.edit_name);
editPhone=(EditText)findViewById(R.id.edit_phone);
editQQ=(EditText)findViewById(R.id.edit_QQ);
editEmail=(EditText)findViewById(R.id.edit_mail);
editAddress=(EditText)findViewById(R.id.edit_address);
buttonAdd=(Button)findViewById(R.id.button1_add);
buttonCancel=(Button)findViewById(R.id.button2_cancel);
Intentintent=getIntent();
n=intent.getIntExtra("
editpeople"
0);
if(n==1)
{
----上一个Activity传进来的(editpeople)值:
"
+n);
editName.setText(Address_Book.LIST.get(Address_Book.CLICK_ID).get("
name"
).toString());
editPhone.setText(Address_Book.LIST.get(Address_Book.CLICK_ID).get("
phone"
editQQ.setText(Address_Book.LIST.get(Address_Book.CLICK_ID).get("
qq"
editEmail.setText(Address_Book.LIST.get(Address_Book.CLICK_ID).get("
mail"
editAddress.setText(Address_Book.LIST.get(Address_Book.CLICK_ID).get("
address"
//设置两个按钮监听事件
buttonAdd.setOnClickListener(newMyButtonOnClickListener());
buttonCancel.setOnClickListener(newMyButtonOnClickListener());
classMyButtonOnClickListenerimplementsOnClickListener{
privatestaticfinalintREQUESCODE2=2;
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.button1_add:
if(editName.getText().toString().length()>
0&
editPhone.getText().toString().length()>
=3){
CreateDatabaseHelper();
if(n!
=1){
Address_Book.LIST=Insert();
Toast.makeText(Add_people.this,"
添加成功!
"
1).show();
选择新建联系人"
}elseif(n==1){Address_Book.LIST=modfiy();
/Toast.makeText(Add_people.this,"
修改成功!
System.out.println("
选择修改联系人"
}
Intentintent=newIntent();
intent.setClass(Add_people.this,Address_Book.class);
intent.putExtra("
nothing2"
2);
startActivityForResult(intent,REQUESCODE2);
}elseif(editName.getText().toString().equals("
)){
Toast.makeText(Add_people.this,"
请输入联系人姓名"
}elseif(editPhone.getText().toString().length()<
3){
Toast.makeText(Add_people.this,"
请输入有效电话"
}
break;
caseR.id.button2_cancel:
取消"
Intentintent=newIntent(Add_people.this,Address_Book.class);
startActivity(intent);
default:
break;
}
}
publicvoidCreateDatabaseHelper(){
//创建一个DatabaseHelper对象
DatabaseHelperdbHelper=newDatabaseHelper(Add_people.this,"
test_mars_db"
//调用DatabaseHelper对象的getReadableDatabase()方法
SQLiteDatabasedb=dbHelper.getReadableDatabase();
publicArrayListInsert(){
ContentValuesvalues=newContentValues();
values.put("
editName.getText().toString());
editPhone.getText().toString());
editQQ.getText().toString());
editEmail.getText().toString());
editAddress.getText().toString());
2);
SQLiteDatabasedb=dbHelper.getWritableDatabase();
db.insert("
user"
null,values);
ArrayList<
HashMap<
String,Object>
>
list=newArrayList<
();
DatabaseHelperdbHelper1=newDatabaseHelper(Add_people.this,"
SQLiteDatabasedb1=dbHelper1.getReadableDatabase();
Cursorcursor=db1.query("
newString[]{"
"
},null,null,null,null,null);
while(cursor.moveToNext()){
HashMap<
map=newHashMap<
map.put("
cursor.getString(cursor.getColumnIndex("
)));
publicvoidQuery(){
SQLiteDatabasedb=dbHelper.getReadableDatabase();
Cursorcursor=db.query("
},"
name=?
newString[]{editName.getText().toString()},null,null,null);
Stringname1=cursor.getString(cursor.getColumnIndex("
));
Stringname2=cursor.getString(cursor.getColumnIndex("
Stringname3=cursor.get
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 系统 通讯录 设计 文档 毕业论文