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
- ContentProvider的实例基础介绍
- contentprovider的学习实例
- Android ContentProvider的介绍
- Android ContentProvider的介绍
- Android ContentProvider的介绍
- Android ContentProvider的介绍
- ContentProvider的基础
- ContentProvider详细介绍(附实例源码)
- ContentProvider详细介绍(附实例源码)
- contentprovider的学习实例总结
- contentprovider的学习实例总结
- contentprovider的学习实例总结
- Android下ContentProvider的实例
- contentprovider的学习实例总结
- contentprovider的学习实例总结
- contentprovider的学习实例总结
- contentprovider的学习实例总结
- contentprovider的学习实例总结
- javascript 事件冒泡机制
- 结构体内部存储中的对齐问题
- C++编译器对构造函数的影响
- 面试阿里巴巴高级web前端工程师的一点经历
- Android中Xposed框架篇---利用Xposed框架实现拦截系统方法
- ContentProvider的实例基础介绍
- python-multiple process 注意事项
- 静态代码块及父类子类初始化顺序
- 第七周 项目3-顺序串算法
- Memcache线上常见问题(缓存雪崩、缓存无底洞、永久数据被踢)
- 牛客网刷题之二叉树中和为某一值的路径
- PhotoView
- oil 分油
- 数据库SQL优化大总结之 百万级数据库优化方案[转载]