ContentProvider的实例基础介绍

来源:互联网 发布:mac 安装arcgis 编辑:程序博客网 时间:2024/05/16 08:19

ContentProvider的实例基础介绍

1.介绍URI
*要从ContentProvider获取数据,需要使用该ContentProvider提供的URI。因为ContentProvider定义的URI对该ContentProvider是唯一的,所以记录URI并能被程序员看到和调用非常重要。
例如:ContactsContract.Contacts.CONTENT_URI*
2.介绍ContentValues
这是一种类似hashMap的存储机制,通过键值对的形式进行存储。
* 3.增删该查实例中讲解(联系人)*

//插入一条数据 两个参数//两个参数①表示获取字段的uri ②表示values数据值 public void insertContact(String displayName, String phone, String enail) {    //①:insert一条空表数据,目的是获取uri的id    ContentValues values = new ContentValues();     //uri_contacts_data表示数据库中的字段    Uri uri = resolver.insert(Uri.parse(uri_contacts_data), values);    long id = ContentUris.parseId(uri);//获取id    //②;insert 联系人姓名    values.clear();    values.put("raw_contact_id", id);    values.put("data1", displayName);    values.put("data2", displayName);    resolver.insert(Uri.parse(uri_contacts_data), values);}//删除数据  三个参数//参数①uri  ② 字段  ③ id 号public boolean deleteContact(String id) {//返回布尔值    int count = resolver.delete(Uri.parse(uri_contacts_data), "_id=", new String[]{id});    return count > 0 ? true : false;}//修改数据  四个参数//参数①uri 参数②修改后的值③ 字段(用于条件)④id(行号)public boolean updateContact(String id, String newName) {    ContentValues nContentvalues = new ContentValues();// 声明nContentvalues    nContentvalues.put("display_name", newName);  // 插入名字将你要插入的数据变为ContentValue格式    //四个参数:uri--key  值, “_id=? whereClause 参数将强制对有      关的行进行更新(sql语句) ”  num(修改的id)    int count = resolver.update(Uri.parse(uri_raw_contacts), nContentvalues, "_id=?", new String[]{id});//    nContentvalues.clear();    nContentvalues.put("data1", newName);    nContentvalues.put("data2", newName);    resolver.update(Uri.parse(uri_contacts_data), nContentvalues, "raw_contact_id=? and mimetype_id=7", new String[]{id});    return count > 0 ? true : false;  //返回true 是 插入成功。}//查询数据 五个参数//参数①uri ② 字段(id name) ③条件(过滤)④用于替换的值⑤排序 public List<Map<String, String>> getContactsList() {    List<Map<String, String>> list = new ArrayList<>();  // 用于返回值    Cursor cursorRawCotacts = resolver.query(Uri.parse(uri_raw_contacts),            new String[]{"_id", "display_name=?"}, null, null, null);//获取说有姓名的数据。    while (cursorRawCotacts.moveToNext()){// Cursor的方法用于移动读取数据        Map<String, String> map = new HashMap<>();        String id = cursorRawCotacts.getString(cursorRawCotacts.getColumnIndex("_id"));        String displayName = cursorRawCotacts.getString(cursorRawCotacts.getColumnIndex("display_name"));        map.put("id", id);        map.put("display_name", displayName);        list.add(map);    }    return list;}

总结

增删该查:参数就是 2 3 4 5.

0 0
原创粉丝点击