安卓通讯录实训报告文档格式.docx
- 文档编号:15143280
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:18
- 大小:61.81KB
安卓通讯录实训报告文档格式.docx
《安卓通讯录实训报告文档格式.docx》由会员分享,可在线阅读,更多相关《安卓通讯录实训报告文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
本手机通讯录工具主要实现五大功能:
联系人的查询:
字段查询,分
组查询,字母排序查询;
增加、删除联系人以及修改联系人信息;
导入、
导出联系人;
发送联系人信息;
设置。
二、实验设计
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+"
-5-
+ContactColumn.HOMENUM+"
+ContactColumn.ADDRESS+"
+ContactColumn.EMAIL+"
+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:
vnd.android.cursor.item/vnd.yarin.android.mycontacts"
default:
thrownewIllegalArgumentException("
UnsupportedURI:
"
+uri);
//删除指定数据列
@Override
publicintdelete(Uriuri,Stringwhere,String[]selectionArgs)
intcount;
count=contactsDB.delete(CONTACTS_TABLE,where,selectionArgs);
break;
StringcontactID=uri.getPathSegments().get
(1);
count=contactsDB.delete(CONTACTS_TABLE,
ContactColumn._ID
+"
="
+contactID
-6-
+(!
TextUtils.isEmpty(where)?
AND("
+where+"
)"
:
),
selectionArgs);
getContext().getContentResolver().notifyChange(uri,null);
returncount;
//插入数据
publicUriinsert(Uriuri,ContentValuesinitialValues)
if(uriMatcher.match(uri)!
=CONTACTS)
UnknownURI"
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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 报告