Android开发实验---通讯录

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档