设为首页 加入收藏

TOP

Android手机联系人数据库分析(三)
2014-11-24 01:45:44 来源: 作者: 【 】 浏览:3
Tags:Android 手机 联系人 数据库分析
oveToFirst()){
int cc1 = c.getColumnIndex(Groups._ID);
int cc2 = c.getColumnIndex(Groups.TITLE);
do{
String id = c.getString(cc1);
String ti = c.getString(cc2);
gid.add(id);
gname.add(ti);
Log.i(TAG, ti);
}while(c.moveToNext());
}
c.close();
int len = gid.size(); /// 总共有多少个群组
c = getContentResolver().query(Data.CONTENT_URI,
new String[]{GroupMembership.CONTACT_ID, GroupMembership.GROUP_ROW_ID},
Data.MIMETYPE + "= ",
new String[]{GroupMembership.CONTENT_ITEM_TYPE}, null);
if(c.moveToFirst()){
int cc1 = c.getColumnIndex(GroupMembership.CONTACT_ID);
int cc2 = c.getColumnIndex(GroupMembership.GROUP_ROW_ID);// group ID
do{
String id = c.getString(cc1);
String groupId = c.getString(cc2);
Item remark = list.get(id);
if(remark == null){
remark = new Item();
list.put(id, remark);
}
for(int i = 0; i < len; i++){
if(gid.get(i).equals(groupId)){
remark.group += gname.get(i)+" ";// 一个人可能有多个群组
}
}
}while(c.moveToNext());
}
c.close();
gid = null;
gname = null;
Log.i(TAG, "end");
if(data.list.size() == 0)
data.list.clear();
Collection vs = list.values();
for(Item it : vs)
data.list.add(it);
Log.i(TAG, "size" + data.list.size());
}


class ViewHolder {
TextView name, note;
TextView number, address;
TextView group, company;
TextView email, workTel;
TextView fnumber;
}

class Item {
String name; // 姓名
String number; // 电话号码
String group=""; // 群组
String note; // 备注
String address; // 家庭地址
String fnumber; // 家庭号码
String company; // 所在公司
String workTel; // 工作号码
String email; // 邮箱
}


group = "" ,是因为某些人可能属于多个分组,为了在拼接字符串时不会有null所以赋予""



在进行一系列查询的时候应该注意一点的就是:Contacts表中_ID是唯一的,也是和其他表关联的,也就是说,得到这个Id后,其他信息都可以通过它得到。那么反过来利用其他值(如:手机号)来得到这个id后,也就可以得到其他相关的信息了。


首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇80行Lua代码实现一个满足基本要求.. 下一篇Python非常cool的svg格式chart生..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: