Android开发实验---通讯录
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
通讯录
姓名:
学号:
课程名称:移动应用开发
所在学院:信息科学与工程学院
专业班级:计算机
任课教师:
主要功能分析:
1、增加、删除、编联系人
点击通信录界面中的增加按钮,入增加联系人面。输入联系人的基本信息,并可根据用户需求增加个性化信息如头像、姓名、手机号码、办室电话、家庭电话、职务职称、单位名称、地址、邮政编码、Email、其他联系方式、备注这些信息,击确认返回主界面。点击通信录中一个已存在的联系人,进入联系人编辑界面,可修改系人的资料或进行删除联系人操作,完成后退回到主界面。对列表中联系人的标记,点mnu键弹出功能界面上的删除按键也可进行删除。还可以在菜单上选择删除全部联系人清空通讯录。在删除联系人的过程中,系统将提示用户是否继续操作,若放弃操作,则系人信息将继续保存。
2、查找联系人
用户点击menu键打开底部菜单框,底部菜单框为查询系人提供入口,进入通讯录的缺省页面为联系人列表,在列表中看到所有联系人的姓名、电话息排列,用户点击查找按键输入联系人基本信息,,通讯录显所有符合查询条件的联系人列表,用户选择一个联系人进入联系人基本信息页面进行其他操作;查询完成,用户按返回键返回主界面。
3、通功能
用户在通录选择联系人进入联系详细信息界面,这时点击menu键打开通信功能框,选择打电话、发信息的功能进行操作。
4、菜单能
通过对menu按的点击,显示底部菜框,包含有增加查找、除、菜单、返回功能,菜单按键则包含显示所有、删除所有等实用功能。
增加联系人:
这个功能由ContactAdder类完成,具体实现不是比较麻烦,保存动作由ContentResolver类解决,但实现方式有所不同,可分为一次性批量增加与挨个增加。
由于界面设置繁琐,代码页过多,所以挑出其中的一部分进行说明
首先是DB数据库建库过程:
package com.xample.hivian.my_contact_manager.models.db;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import com.example.hivian.my_contact_manager.models.Contact;
import com.example.hivian.my_contact_manager.models.Sms;
import java.util.ArrayList;
import java.util.List;
public class DBHandler extends SQLiteOpenHelper {// Database Version
private static final int DB_VERSION = 1;// Database Name
private static final String DB_NAME = "DB";// Contacts table name
private static final String CONTACTS_TABLE = "contacts";//通讯录
private static final String SMS_TABLE = "sms";// Shops Table Columns names private static final String KEY_ID = "id";
private static final String KEY_IMAGE = "image";//图片
private static final String KEY_NAME = "name";//姓名
private static final String KEY_PHONE = "phone";//电话号码
private static final String KEY_EMAIL = "email";//邮箱
private static final String KEY_ADDRESS = "address";//联系人地址
private static final String KEY_SMS_HEADER = "sms_header";
private static final String KEY_SMS_CONTENT = "sms_content";
private static final String KEY_CONTACT_ID = "contact_id";
private static final String KEY_SMS_TYPE = "sms_type";
private static final String CONTACTS_TABLE_CREATE =
"CREATE TABLE " + CONTACTS_TABLE + " (" + KEY_ID + " INTEGER PRIMARY KEY, " + KEY_IMAGE + " BLOB, " + KEY_NAME + " TEXT, " + KEY_PHONE + " TEXT, " +
KEY_EMAIL + " TEXT, " + KEY_ADDRESS + " TEXT)";
private static final String SMS_TABLE_CREATE =
"CREATE TABLE " + SMS_TABLE + " (" + KEY_ID + " INTEGER PRIMARY KEY, " +
KEY_SMS_HEADER + " TEXT, " + KEY_SMS_CONTENT + " TEXT, " +
KEY_CONTACT_ID + " INTEGER," + KEY_SMS_TYPE + " INTEGER)";
private static DBHandler dbInstance= null;
public static DBHandlergetInstance(Context context) {
if (dbInstance== null) {
dbInstance= new DBHandler(context, DB_NAME, DB_VERSION);
}
return dbInstance;
}
DBHandler(Context context, String dbName, int dbVersion) {
super(context, dbName, null, dbVersion);
}
@Override
public void onCreate(SQLiteDatabasedb) {
db.execSQL(CONTACTS_TABLE_CREATE);
db.execSQL(SMS_TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabasedb, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + CONTACTS_TABLE);