Android通讯录
这是本人学习android一个月以来的第一个比较实用的小程序,此程序可以读取手机自带通讯录上的所有联系人,并且可以导入到这个通讯录列表,不用用户一个一个地输入,将导入的联系人信息保存在SQLite3数据库中,还具有向指定联系人发送短信、打电话、增加、修改联系人等基本功能。效果图如下所示:
代码如下(直接复制即可掩饰效果):
====================== DatabaseHelper=======================
package liu.sqlite3.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
//DatabaseHelper作为一个访问SQLite的助手类,提供两个方面的功能,
//第一,getReadableDatabase(),getWritableDatabase()可以获得SQLiteDatabse对象,通过该对象可以对数据库进行操作
//第二,提供了onCreate()和onUpgrade()两个回调函数,允许我们在创建和升级数据库时,进行自己的操作
public class DatabaseHelper extends SQLiteOpenHelper {
private static final int VERSION = 1; //在SQLiteOepnHelper的子类当中,必须有该构造函数 public DatabaseHelper(Context context, String name, CursorFactory factory,
int version) { //必须通过super调用父类当中的构造函数 super(context, name, factory, version); // TODO Auto-generated constructor stub
}
} public DatabaseHelper(Context context,String name){ } public DatabaseHelper(Context context,String name,int version){ } //该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabse对象的时候,@Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } // TODO Auto-generated method stub System.out.println("update a Database"); // TODO Auto-generated method stub System.out.println("create a Database"); //execSQL函数用于执行SQL语句 db.execSQL("create table user(name varchar(20),phone text,qq text,mail text,address text)"); this(context, name,null,version); this(context,name,VERSION); 才会调用这个方法
package net.yxarm;
import java.util.ArrayList;
import java.util.HashMap;
import liu.sqlite3.db.DatabaseHelper;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.