Android中对Group的各种操作示例代码
2012-01-06 01:23
471 查看
1. 增加Group
其中GROUPNAME是要创建的Group的名称。
2. 删除一个Group
3. 查询所有的Group
查询出所有Group的名称和ID。
4. 更改指定Group的名称
5. 查询一个Group中的所有联系人
6. 从Group中删除某个联系人
7. 查询某个联系人处于那几个Group中
其中raw_contact_id是联系人的ID。
需要注意的是,groupCursor中所包含的group_raw_id有可能重复,为了消除这种重复,可以将groupCursor中的内容倒入到一个Set容器中,再根据Set容器中的元素(具有唯一性的group_raw_id),查找其对应的Group的名称。
// create a group ContentValues values = new ContentValues(); values.put(ContactsContract.Groups.TITLE, “GROUPNAME”); Uri uri = getContentResolver().insert(ContactsContract.Groups.CONTENT_URI, values);
其中GROUPNAME是要创建的Group的名称。
2. 删除一个Group
// delete a group // 做删除标志,但未真正删除。真正的删除会在同步时自动实现 // getContentResolver().delete(ContactsContract.Groups.CONTENT_URI, ContactsContract.Groups._ID + " = " + raw_group_id, null); // 真正意义上的删除 Uri uri = ContentUris.withAppendedId(ContactsContract.Groups.CONTENT_URI, raw_group_id); Uri.Builder b = uri.buildUpon(); b.appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true"); uri = b.build(); getContentResolver().delete(uri, null, null);其中raw_group_id是Group的ID,对应的是ContactsContract.Groups中的_ID字段。
3. 查询所有的Group
// query all groups Cursor groupCursor = getContentResolver().query(ContactsContract.Groups.CONTENT_URI, new String[]{ContactsContract.Groups.TITLE, ContactsContract.Groups._ID}, null, null, null);
查询出所有Group的名称和ID。
4. 更改指定Group的名称
// update a group ContentValues values = new ContentValues(); values.put(ContactsContract.Groups.TITLE, "NEWGROUPTITLE"); getContentResolver().update(ContactsContract.Groups.CONTENT_URI, values, ContactsContract.Groups._ID + " = " + raw_group_id, null);其中NEWGROUPTITLE是新取的Group名称,raw_group_id是Group的ID。
5. 查询一个Group中的所有联系人
// To query all contacts in a group // First, query the raw_contact_ids of all the contacts in the group Cursor groupContactCursor = getContentResolver().query(Data.CONTENT_URI, new String[]{Data.RAW_CONTACT_ID}, Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "' AND " + ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID + " = " + raw_group_id, null, null); // Second, query the corresponding name of the raw_contact_id while(groupContactCursor.moveToNext()) { Cursor contactCursor = getContentResolver().query(Data.CONTENT_URI, new String[]{Data.RAW_CONTACT_ID, StructuredName.FAMILY_NAME, StructuredName.GIVEN_NAME}, Data.MIMETYPE + "='" + StructuredName.CONTENT_ITEM_TYPE + "' AND " + Data.RAW_CONTACT_ID + "=" + groupContactCursor.getInt(0), null, null); contactCursor.moveToNext(); Log.e("TestContractGroupOperationActivity", "Member name is: " + contactCursor.getString(1) + " " + contactCursor.getString(2)); contactCursor.close(); } groupContactCursor.close();
6. 从Group中删除某个联系人
// Delete a contact from a group Uri uri = Data.CONTENT_URI; Uri.Builder b = uri.buildUpon(); b.appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true"); uri = b.build(); getContentResolver().delete(uri, Data.RAW_CONTACT_ID + "=" + raw_contact_id + " AND " + ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID + " =" + raw_group_id, null);从ID为raw_group_id的Group中,删除ID为raw_contact_id的Contact。
7. 查询某个联系人处于那几个Group中
// First, query all the group ids that a contact is in Cursor groupCursor = getContentResolver().query(Data.CONTENT_URI, new String[]{ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID}, ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE + "='" + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE +"' AND " + Data.RAW_CONTACT_ID + " = " + raw_contact_id, null, null); // Second, get all the corresponding group names while(groupCursor.moveToNext()) { Cursor groupNameCursor = getContentResolver().query(ContactsContract.Groups.CONTENT_URI, new String[]{ContactsContract.Groups.TITLE}, ContactsContract.Groups._ID + "=" + groupCursor.getInt(0), null, null); groupNameCursor.moveToNext(); Log.e("Test", groupNameCursor.getString(0)); groupNameCursor.close(); } groupCursor.close();
其中raw_contact_id是联系人的ID。
需要注意的是,groupCursor中所包含的group_raw_id有可能重复,为了消除这种重复,可以将groupCursor中的内容倒入到一个Set容器中,再根据Set容器中的元素(具有唯一性的group_raw_id),查找其对应的Group的名称。
相关文章推荐
- js操作iframe兼容各种主流浏览器示例代码
- js操作iframe兼容各种主流浏览器示例代码
- Androidの联系人群组Group操作示例
- Android 列表形式的切换的示例代码
- android适配器中view复用的示例代码
- Android视图SurfaceView的实现原理分析(示例,出错代码)
- 仅一行代码完成各种数据库操作,基于spring的HibernateTemplate
- Android 实现延时执行操作的几种方法 总结以及代码
- Android多边形区域递归种子填充算法的示例代码
- Android 在代码中设置打开关闭GPS不必用户操作
- Android防止按钮重复点击示例代码
- Android Java使用JavaMail API发送和接收邮件的代码示例
- java selenium 操作弹出窗口示例代码
- Android Jni代码示例讲解
- Android视频压缩的示例代码
- javascript 表格内容排序 简单操作示例代码
- Android串口通信封装之OkUSB的示例代码
- android JNI C代码对sdcard中文件的操作
- java中(DOM,SAX,JDOM,DOM4J)操作xml方式的比较和代码示例
- Android Scroll实现弹性滑动_列表下拉弹性滑动的示例代码