最近一两天在工作之余利用Android的SQLiteDatabase写了一个通讯录。先来分析下几个关键的地方:

一、Activity之间的数据传递,在这次写通讯录中还是使用Bundle来传递数据,只是在传递时对数据稍作处理,以下是关键代码:

Cursor cursortemp = dbHelper.getReadableDatabase().rawQuery("select * from member where name = ?",new String[] { keyname });// 创建一个Bundle对象Bundle data = new Bundle();data.putSerializable("data",converCursorToList(cursortemp));Intent intent = new Intent(queryMember.this,ShowMember.class);intent.putExtras(data);startActivity(intent);

下面是对查询出来的结果集进行处理:

protected ArrayList>converCursorToList(Cursor cursor){ArrayList> result = new ArrayList>();// 遍历Cursor结果集while (cursor.moveToNext()){// 将结果集中的数据存入ArrayList中Map map = new HashMap();// 取出查询记录中第2列、第3列的值map.put("name", cursor.getString(1));map.put("sex", cursor.getString(2));map.put("address", cursor.getString(3));map.put("phonenum", cursor.getString(4));map.put("qqnum", cursor.getString(5));map.put("email", cursor.getString(6));result.add(map);}return result;}

二、获取ListView被选中那列的值(它里面放的是一个TextView),关键代码如下:

public void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stub         TextView c=(TextView) listView.getChildAt(position); String keyname = c.getText().toString();}

三、万能的BaseAdapter adapter = new BaseAdapter()的使用。

四、数据库的操作,CRUD。

接下来看下效果:

主界面:

添加联系人:

查看所有联系人:

选中即可拨打电话:

按姓名查找联系人:

点击小张查看小张信息:

删除联系人:

删除后:

修改联系人信息:

将其性别改为女,保存修改后回到主界面:

最后看下通讯录的桌面图标:

总结:这只是简单的写了一个实现了基本的增删查改的通讯录,还需完善的地方很多,比如加版本信息,菜单,加发短信,发邮件功能等。通讯录下载

 


 

 

 

 

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. Android下 SQLite的使用
  3. Android(安卓)使用USB进行数据传输
  4. android下的读写权限
  5. Android开发经验谈之应用间数据共享
  6. [Android(安卓)SQLite]数据存储与访问 - 外部存储
  7. android 客户端数据传递之一:Web Service 代码
  8. 数据储存方式-SharedPreferences
  9. Android(安卓)SharedPreference 源码分析(一)

随机推荐

  1. Android(安卓)中 ProgressBar 和 AlertDi
  2. Android应用程序框架
  3. 安卓使用Menu方式!
  4. Android(安卓)6.0棉花糖新特性
  5. Android撬动IT市场的新支点
  6. Android应用程序窗口(Activity)的运行上下
  7. Android缺乏整体控制或成发展障碍
  8. Android中View的getX,getY...
  9. android常用UI控件的使用例子
  10. Android能用Linux打败Linux手机吗?