安卓通讯录实训报告.docx

上传人:b****3 文档编号:2225555 上传时间:2022-10-28 格式:DOCX 页数:18 大小:61.81KB
下载 相关 举报
安卓通讯录实训报告.docx_第1页
第1页 / 共18页
安卓通讯录实训报告.docx_第2页
第2页 / 共18页
安卓通讯录实训报告.docx_第3页
第3页 / 共18页
安卓通讯录实训报告.docx_第4页
第4页 / 共18页
安卓通讯录实训报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

安卓通讯录实训报告.docx

《安卓通讯录实训报告.docx》由会员分享,可在线阅读,更多相关《安卓通讯录实训报告.docx(18页珍藏版)》请在冰豆网上搜索。

安卓通讯录实训报告.docx

安卓通讯录实训报告

安卓通讯录实训报告

电子与信息工程学院计算机科学与技术系开放与创新实验设计报告

安卓实训设计报告

安卓通讯录

设计题目:

安卓通讯录

班级:

姓名:

学号:

指导老师:

日期:

2012年6月7日

-1-

电子与信息工程学院计算机科学与技术系开放与创新实验设计报告

内容要求

一、题目分析,功能要求。

1.1实验目的

熟悉Android软件开发的基本架构

利用Eclipse和ADT插件设计通讯录

1.2功能

本手机通讯录工具主要实现五大功能:

联系人的查询:

字段查询,分

组查询,字母排序查询;增加、删除联系人以及修改联系人信息;导入、

导出联系人;发送联系人信息;设置。

二、实验设计

2.1UI设计

我们用一个ListView来显示整个通讯录,其中用TextView显示每一

记录,他们的xml文件分别为:

main.xml(通讯录主界面),addres.xml(添

加联系人界面),list_item.xml(浏览联系人界面),find.xml(查找联系

人界面)。

2.2数据库的设计

Android中的android.database.sqlite.SQLiteOpenHelper类是一

个专门用于数据库创建和版本管理的辅助类。

因此,为了更好的管理数据

库,这里我们创建一个继承自SQLiteOpenHelper的辅助类DBHelper来维

护和更新数据库。

2.3功能的设计

为了在主界面中浏览联系人的信息,并且创建主要菜单栏,我们设计

了MainActivity类,主要用于显示联系人信息和菜单栏,通过菜单栏,

实现通讯录的相关功能。

AddressBook类主要是为了实现联系人的添加功

能,并且实现信息的保存后跳转到主界面。

Findactivity类主要是为了实

现联系人的查找功能,输入联系人的姓名,点击查找按钮,显示所查联系

-2-

电子与信息工程学院计算机科学与技术系开放与创新实验设计报告

人的相关信息。

三、实验程序

见附录一。

四、实验效果图

-3-

电子与信息工程学院计算机科学与技术系开放与创新实验设计报告

五、总结

通过设计该通讯录,主要学习了UI设计、数据库的综合操作、动态

菜单的使用以及各种权限的注册。

通过本次设计,使我对Android平台的

数据库操作有了更进一步的理解,同时也对Android系统有了更深入的了

解。

-4-

电子与信息工程学院计算机科学与技术系开放与创新实验设计报告

附录一

//定义数据

publicclassContactColumnimplementsBaseColumns{

publicContactColumn()

{

}

//列名

publicstaticfinalStringNAME="name";//姓名

publicstaticfinalStringMOBILENUM="mobileNumber";//移动电话

publicstaticfinalStringHOMENUM="homeNumber";//家庭电话

publicstaticfinalStringADDRESS="address";//地址

publicstaticfinalStringEMAIL="email";//邮箱

publicstaticfinalStringBLOG="blog";//博客

//列索引值

publicstaticfinalint_ID_COLUMN=0;

publicstaticfinalintNAME_COLUMN=1;

publicstaticfinalintMOBILENUM_COLUMN=2;

publicstaticfinalintHOMENUM_COLUMN=3;

publicstaticfinalintADDRESS_COLUMN=4;

publicstaticfinalintEMAIL_COLUMN=5;

publicstaticfinalintBLOG_COLUMN=6;

//查询结果

publicstaticfinalString[]PROJECTION={

_ID,

NAME,

MOBILENUM,

HOMENUM,

ADDRESS,

EMAIL,

BLOG,

};

}

publicclassDBHelperextendsSQLiteOpenHelper{

publicstaticfinalStringDATABASE_NAME="mycontacts.db";//数据库名

publicstaticfinalintDATABASE_VERSION=2;//版本

publicstaticfinalStringCONTACTS_TABLE="contacts";//表名

//创建表

privatestaticfinalStringDATABASE_CREATE=

"CREATETABLE"+CONTACTS_TABLE+"("

+ContactColumn._ID+"integerprimarykeyautoincrement,"

+ContactColumn.NAME+"text,"

+ContactColumn.MOBILENUM+"text,"

-5-

电子与信息工程学院计算机科学与技术系开放与创新实验设计报告

+ContactColumn.HOMENUM+"text,"

+ContactColumn.ADDRESS+"text,"

+ContactColumn.EMAIL+"text,"

+ContactColumn.BLOG+"text);";

publicDBHelper(Contextcontext)

{

super(context,DATABASE_NAME,null,DATABASE_VERSION);

}

publicvoidonCreate(SQLiteDatabasedb)

{

db.execSQL(DATABASE_CREATE);

}

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion)

{

db.execSQL("DROPTABLEIFEXISTS"+CONTACTS_TABLE);

onCreate(db);

}

}

//URI类型转换

publicStringgetType(Uriuri)

{

switch(uriMatcher.match(uri))

{

caseCONTACTS:

return"vnd.android.cursor.dir/vnd.yarin.android.mycontacts";

caseCONTACT_ID:

return"vnd.android.cursor.item/vnd.yarin.android.mycontacts";

default:

thrownewIllegalArgumentException("UnsupportedURI:

"+uri);

}

}

//删除指定数据列

@Override

publicintdelete(Uriuri,Stringwhere,String[]selectionArgs)

{

intcount;

switch(uriMatcher.match(uri))

{

caseCONTACTS:

count=contactsDB.delete(CONTACTS_TABLE,where,selectionArgs);

break;

caseCONTACT_ID:

StringcontactID=uri.getPathSegments().get

(1);

count=contactsDB.delete(CONTACTS_TABLE,

ContactColumn._ID

+"="+contactID

-6-

电子与信息工程学院计算机科学与技术系开放与创新实验设计报告

+(!

TextUtils.isEmpty(where)?

"AND("+where+")":

""),

selectionArgs);

break;

default:

thrownewIllegalArgumentException("UnsupportedURI:

"+uri);

}

getContext().getContentResolver().notifyChange(uri,null);

returncount;

}

//插入数据

publicUriinsert(Uriuri,ContentValuesinitialValues)

{

if(uriMatcher.match(uri)!

=CONTACTS)

{

thrownewIllegalArgumentException("UnknownURI"+uri);

}

ContentValuesvalues;

if(initialValues!

=null)

{

values=newContentValues(initialValues);

Log.e(TAG+"insert","initialValuesisnotnull");

}

else

{

values=newContentValues();

}

//设置默认值

if(values.containsKey(ContactColumn.NAME)==false)

{

values.put(ContactColumn.NAME,"");

}

if(values.containsKey(ContactColumn.MOBILENUM)==false)

{

values.put(ContactColumn.MOBILENUM,"");

}

if(values.containsKey(ContactColumn.HOMENUM)==false)

{

values.put(ContactColumn.HOMENUM,"");

}

if(values.containsKey(ContactColumn.ADDRESS)==false)

{

values.put(ContactColumn.ADDRESS,"");

}

if(values.containsKey(ContactColumn.EMAIL)==false)

{

values.put(ContactColumn.EMAIL,"");

-7-

电子与信息工程学院计算机科学与技术系开放与创新实验设计报告

}

i

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

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1