安卓通讯录实训报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
values.put(ContactColumn.EMAIL,"");
}
if(values.containsKey(ContactColumn.BLOG) ==false)
{
values.put(ContactColumn.BLOG,"");
}
Log.e(TAG+"insert", values.toString());
{
caseCONTACTS:
Log.e(TAG+"update",CONTACTS+"");
count =contactsDB.update(CONTACTS_TABLE, values, where, selectionArgs);
break;
caseCONTACT_ID:
String contactID = uri.getPathSegments().get(1);
}
if(values.containsKey(ContactColumn.MOBILENUM) ==false)
{
values.put(ContactColumn.MOBILENUM,"");
}
if(values.containsKey(ContactColumn.HOMENUM) ==false)
publicstaticfinalStringADDRESS="address";//地址
publicstaticfinalStringEMAIL="email";//邮箱
publicstaticfinalStringBLOG="blog";//博客
//列索引值
publicstaticfinalint_ID_COLUMN= 0;
publicstaticfinalintNAME_COLUMN= 1;
publicstaticfinalintMOBILENUM_COLUMN= 2;
publicstaticfinalintHOMENUM_COLUMN= 3;
publicstaticfinalintADDRESS_COLUMN= 4;
Log.e(TAG+"insert", noteUri.toString());
returnnoteUri;
}
thrownewSQLException("Failed to insert row into "+ uri);
}
Байду номын сангаас//更新数据库
publicintupdate(Uri uri, ContentValues values, String where, String[] selectionArgs)
+ ContactColumn.NAME+" text,"
+ ContactColumn.MOBILENUM+" text,"
+ ContactColumn.HOMENUM+" text,"
+ ContactColumn.ADDRESS+" text,"
+ ContactColumn.EMAIL+" text,"
}
}
// URI类型转换
publicString getType(Uri uri)
{
switch(uriMatcher.match(uri))
{
caseCONTACTS:
return"vnd.android.cursor.dir/vnd.yarin.android.mycontacts";
caseCONTACT_ID:
二、实验设计
2.1 UI设计
我们用一个ListView来显示整个通讯录,其中用TextView显示每一记录,他们的xml文件分别为:main.xml(通讯录主界面),addres.xml(添加联系人界面),list_item.xml(浏览联系人界面),find.xml(查找联系人界面)。
2.2功能的设计
{
intcount;
switch(uriMatcher.match(uri))
{
caseCONTACTS:
count =contactsDB.delete(CONTACTS_TABLE, where, selectionArgs);
break;
caseCONTACT_ID:
String contactID = uri.getPathSegments().get(1);
{
publicContactColumn()
{
}
//列名
publicstaticfinalStringNAME="name";//姓名
publicstaticfinalStringMOBILENUM="mobileNumber";//移动电话
publicstaticfinalStringHOMENUM="homeNumber";//家庭电话
{
values.put(ContactColumn.HOMENUM,"");
}
if(values.containsKey(ContactColumn.ADDRESS) ==false)
{
values.put(ContactColumn.ADDRESS,"");
}
if(values.containsKey(ContactColumn.EMAIL) ==false)
3、实验程序
四、实验效果图
五、总结
通过设计该通讯录,主要学习了UI设计、数据库的综合操作、动态菜单的使用以及各种权限的注册。通过本次设计,使我对Android平台的数据库操作有了更进一步的理解,同时也对Android系统有了更深入的了解。
附录一
//定义数据
publicclassContactColumnimplementsBaseColumns
{
db.execSQL(DATABASE_CREATE);
}
publicvoidonUpgrade(SQLiteDatabase db,intoldVersion,intnewVersion)
{
db.execSQL("DROP TABLE IF EXISTS "+CONTACTS_TABLE);
onCreate(db);
为了在主界面中浏览联系人的信息,并且创建主要菜单栏,我们设计了MainActivity类,主要用于显示联系人信息和菜单栏,通过菜单栏,实现通讯录的相关功能。AddressBook类主要是为了实现联系人的添加功能,并且实现信息的保存后跳转到主界面。Findactivity类主要是为了实现联系人的查找功能,输入联系人的姓名,点击查找按钮,显示所查联系人的相关信息。
thrownewIllegalArgumentException("Unsupported URI: "+ uri);
}
getContext().getContentResolver().notifyChange(uri,null);
returncount;
}
//插入数据
publicUri insert(Uri uri, ContentValues initialValues)
publicstaticfinalStringCONTACTS_TABLE="contacts";//表名
//创建表
privatestaticfinalStringDATABASE_CREATE=
"CREATE TABLE "+CONTACTS_TABLE+" ("
+ ContactColumn._ID+" integer primary key autoincrement,"
BLOG,
};
}
publicclassDBHelperextendsSQLiteOpenHelper
{
publicstaticfinalStringDATABASE_NAME="mycontacts.db";//数据库名
publicstaticfinalintDATABASE_VERSION= 2;//版本
Log.e(TAG+"insert","initialValues is not null");
}
else
{
values =newContentValues();
}
//设置默认值
if(values.containsKey(ContactColumn.NAME) ==false)
{
values.put(ContactColumn.NAME,"");
publicstaticfinalintEMAIL_COLUMN= 5;
publicstaticfinalintBLOG_COLUMN= 6;
//查询结果
publicstaticfinalString[]PROJECTION={
_ID,
NAME,
MOBILENUM,
HOMENUM,
ADDRESS,
EMAIL,
count =contactsDB.delete(CONTACTS_TABLE,
ContactColumn._ID
+"="+ contactID
+ (!TextUtils.isEmpty(where) ?" AND ("+ where +")":""),
selectionArgs);
break;
default:
+ ContactColumn.BLOG+" text);";
publicDBHelper(Context context)
{
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
publicvoidonCreate(SQLiteDatabase db)
安卓实训设计报告
安卓通讯录
设计题目:安卓通讯录
班 级:
姓 名:
学 号:
指导老师:
日 期:2012年6月7日
内容要求
一、题目分析,功能要求。
1.1 实验目的
熟悉Android软件开发的基本架构
利用Eclipse和ADT插件设计通讯录
1.2 功能
本手机通讯录工具主要实现五大功能:联系人的查询:字段查询,分组查询,字母排序查询;增加、删除联系人以及修改联系人信息;导入、导出联系人;发送联系人信息;设置。
break;
default:
thrownewIllegalArgumentException("Unsupported URI: "+ uri);
}
getContext().getContentResolver().notifyChange(uri,null);
returncount;
}
}
publicbooleanonPrepareOptionsMenu(Menu menu)
return"vnd.android.cursor.item/vnd.yarin.android.mycontacts";
default:
thrownewIllegalArgumentException("Unsupported URI: "+ uri);
}
}
//删除指定数据列
@Override
publicintdelete(Uri uri, String where, String[] selectionArgs)
longrowId =contactsDB.insert(CONTACTS_TABLE,null, values);
if(rowId > 0)
{
Uri noteUri = ContentUris.withAppendedId(CONTENT_URI, rowId);
getContext().getContentResolver().notifyChange(noteUri,null);
Log.e(TAG+"update", contactID +"");
count =contactsDB.update(CONTACTS_TABLE, values, ContactColumn._ID+"="+ contactID
+ (!TextUtils.isEmpty(where) ?" AND ("+ where +")":""), selectionArgs);
{
intcount;
Log.e(TAG+"update", values.toString());
Log.e(TAG+"update", uri.toString());
Log.e(TAG+"update :match",""+uriMatcher.match(uri));
switch(uriMatcher.match(uri))
{
if(uriMatcher.match(uri) !=CONTACTS)
{
thrownewIllegalArgumentException("Unknown URI "+ uri);
}
ContentValues values;
if(initialValues !=null)
{
values =newContentValues(initialValues);
values.put(ContactColumn.EMAIL,"");
}
if(values.containsKey(ContactColumn.BLOG) ==false)
{
values.put(ContactColumn.BLOG,"");
}
Log.e(TAG+"insert", values.toString());
{
caseCONTACTS:
Log.e(TAG+"update",CONTACTS+"");
count =contactsDB.update(CONTACTS_TABLE, values, where, selectionArgs);
break;
caseCONTACT_ID:
String contactID = uri.getPathSegments().get(1);
}
if(values.containsKey(ContactColumn.MOBILENUM) ==false)
{
values.put(ContactColumn.MOBILENUM,"");
}
if(values.containsKey(ContactColumn.HOMENUM) ==false)
publicstaticfinalStringADDRESS="address";//地址
publicstaticfinalStringEMAIL="email";//邮箱
publicstaticfinalStringBLOG="blog";//博客
//列索引值
publicstaticfinalint_ID_COLUMN= 0;
publicstaticfinalintNAME_COLUMN= 1;
publicstaticfinalintMOBILENUM_COLUMN= 2;
publicstaticfinalintHOMENUM_COLUMN= 3;
publicstaticfinalintADDRESS_COLUMN= 4;
Log.e(TAG+"insert", noteUri.toString());
returnnoteUri;
}
thrownewSQLException("Failed to insert row into "+ uri);
}
Байду номын сангаас//更新数据库
publicintupdate(Uri uri, ContentValues values, String where, String[] selectionArgs)
+ ContactColumn.NAME+" text,"
+ ContactColumn.MOBILENUM+" text,"
+ ContactColumn.HOMENUM+" text,"
+ ContactColumn.ADDRESS+" text,"
+ ContactColumn.EMAIL+" text,"
}
}
// URI类型转换
publicString getType(Uri uri)
{
switch(uriMatcher.match(uri))
{
caseCONTACTS:
return"vnd.android.cursor.dir/vnd.yarin.android.mycontacts";
caseCONTACT_ID:
二、实验设计
2.1 UI设计
我们用一个ListView来显示整个通讯录,其中用TextView显示每一记录,他们的xml文件分别为:main.xml(通讯录主界面),addres.xml(添加联系人界面),list_item.xml(浏览联系人界面),find.xml(查找联系人界面)。
2.2功能的设计
{
intcount;
switch(uriMatcher.match(uri))
{
caseCONTACTS:
count =contactsDB.delete(CONTACTS_TABLE, where, selectionArgs);
break;
caseCONTACT_ID:
String contactID = uri.getPathSegments().get(1);
{
publicContactColumn()
{
}
//列名
publicstaticfinalStringNAME="name";//姓名
publicstaticfinalStringMOBILENUM="mobileNumber";//移动电话
publicstaticfinalStringHOMENUM="homeNumber";//家庭电话
{
values.put(ContactColumn.HOMENUM,"");
}
if(values.containsKey(ContactColumn.ADDRESS) ==false)
{
values.put(ContactColumn.ADDRESS,"");
}
if(values.containsKey(ContactColumn.EMAIL) ==false)
3、实验程序
四、实验效果图
五、总结
通过设计该通讯录,主要学习了UI设计、数据库的综合操作、动态菜单的使用以及各种权限的注册。通过本次设计,使我对Android平台的数据库操作有了更进一步的理解,同时也对Android系统有了更深入的了解。
附录一
//定义数据
publicclassContactColumnimplementsBaseColumns
{
db.execSQL(DATABASE_CREATE);
}
publicvoidonUpgrade(SQLiteDatabase db,intoldVersion,intnewVersion)
{
db.execSQL("DROP TABLE IF EXISTS "+CONTACTS_TABLE);
onCreate(db);
为了在主界面中浏览联系人的信息,并且创建主要菜单栏,我们设计了MainActivity类,主要用于显示联系人信息和菜单栏,通过菜单栏,实现通讯录的相关功能。AddressBook类主要是为了实现联系人的添加功能,并且实现信息的保存后跳转到主界面。Findactivity类主要是为了实现联系人的查找功能,输入联系人的姓名,点击查找按钮,显示所查联系人的相关信息。
thrownewIllegalArgumentException("Unsupported URI: "+ uri);
}
getContext().getContentResolver().notifyChange(uri,null);
returncount;
}
//插入数据
publicUri insert(Uri uri, ContentValues initialValues)
publicstaticfinalStringCONTACTS_TABLE="contacts";//表名
//创建表
privatestaticfinalStringDATABASE_CREATE=
"CREATE TABLE "+CONTACTS_TABLE+" ("
+ ContactColumn._ID+" integer primary key autoincrement,"
BLOG,
};
}
publicclassDBHelperextendsSQLiteOpenHelper
{
publicstaticfinalStringDATABASE_NAME="mycontacts.db";//数据库名
publicstaticfinalintDATABASE_VERSION= 2;//版本
Log.e(TAG+"insert","initialValues is not null");
}
else
{
values =newContentValues();
}
//设置默认值
if(values.containsKey(ContactColumn.NAME) ==false)
{
values.put(ContactColumn.NAME,"");
publicstaticfinalintEMAIL_COLUMN= 5;
publicstaticfinalintBLOG_COLUMN= 6;
//查询结果
publicstaticfinalString[]PROJECTION={
_ID,
NAME,
MOBILENUM,
HOMENUM,
ADDRESS,
EMAIL,
count =contactsDB.delete(CONTACTS_TABLE,
ContactColumn._ID
+"="+ contactID
+ (!TextUtils.isEmpty(where) ?" AND ("+ where +")":""),
selectionArgs);
break;
default:
+ ContactColumn.BLOG+" text);";
publicDBHelper(Context context)
{
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
publicvoidonCreate(SQLiteDatabase db)
安卓实训设计报告
安卓通讯录
设计题目:安卓通讯录
班 级:
姓 名:
学 号:
指导老师:
日 期:2012年6月7日
内容要求
一、题目分析,功能要求。
1.1 实验目的
熟悉Android软件开发的基本架构
利用Eclipse和ADT插件设计通讯录
1.2 功能
本手机通讯录工具主要实现五大功能:联系人的查询:字段查询,分组查询,字母排序查询;增加、删除联系人以及修改联系人信息;导入、导出联系人;发送联系人信息;设置。
break;
default:
thrownewIllegalArgumentException("Unsupported URI: "+ uri);
}
getContext().getContentResolver().notifyChange(uri,null);
returncount;
}
}
publicbooleanonPrepareOptionsMenu(Menu menu)
return"vnd.android.cursor.item/vnd.yarin.android.mycontacts";
default:
thrownewIllegalArgumentException("Unsupported URI: "+ uri);
}
}
//删除指定数据列
@Override
publicintdelete(Uri uri, String where, String[] selectionArgs)
longrowId =contactsDB.insert(CONTACTS_TABLE,null, values);
if(rowId > 0)
{
Uri noteUri = ContentUris.withAppendedId(CONTENT_URI, rowId);
getContext().getContentResolver().notifyChange(noteUri,null);
Log.e(TAG+"update", contactID +"");
count =contactsDB.update(CONTACTS_TABLE, values, ContactColumn._ID+"="+ contactID
+ (!TextUtils.isEmpty(where) ?" AND ("+ where +")":""), selectionArgs);
{
intcount;
Log.e(TAG+"update", values.toString());
Log.e(TAG+"update", uri.toString());
Log.e(TAG+"update :match",""+uriMatcher.match(uri));
switch(uriMatcher.match(uri))
{
if(uriMatcher.match(uri) !=CONTACTS)
{
thrownewIllegalArgumentException("Unknown URI "+ uri);
}
ContentValues values;
if(initialValues !=null)
{
values =newContentValues(initialValues);