介绍:
contentProvider是安卓的四大控件之一,主要作用用于实现程序间的数据共享功能。内容提供器提供了一套完整的机制,允许一个程序访问另一个程序的数据,同时还能保证被访问数据的安全性。
使用:
创建ContentResolver
get resolver
ContentResolver提供了一系列的方法对数据进行crud,这些方法的参数是一个uri,由两个部分组成,authority和path,authority用于对不同的应用程序做区分一般用程序的包名命名,path则用于对一个应用程序里的表作为区分。
-
查询:
查询使用resolver的query()方法,传入查询的uri,返回一个cursor对象,我们可以通过对cursor对象的遍历获取到查询的数据。
后面的四个参数用于对查询条件的筛选,projection:指定查询的列名,selection:指定where的约束条件,selectionArgs:where中占位符指定的具体的值,sortOrder:查询结果的排序。 -
遍历cursor:
在此前先给大家科普一下cursor,cursor是每行的集合(网上总结的,说的不对不要找我),数据是一行一行的存的,cursor对象有一个游标,可能没有,我们可以假设有一个游标 ,用于指向数据的每一行,moveTofirst将游标移动到第一行,然后通过getColumnIndex("name")得到当前行的name的index,然后通过getString(index)去到对应的name。还不懂的话。来个形象点的。
数据是这样存的
data is like this
getColumnIndex("name")得到当前cursor指向的行的name的index(我也不到是几0开始的话就是2,1开始的话就是3),然后getString(index)就拿到了张三。剩下的去举一反三了,顺便送一份cursor的说明书:
cursor's shuo ming book
正常情况下cursor的使用步骤:
cursor use step(cursor使用步骤)
ok,查询已经学完了,剩下的rud就更简单了,??为什么crud是增删改查呢
q
a
ok,查询已经学完了,剩下的cud就更简单了。
-
添加:
添加通过一个ContentValus类,科普一下contentValus,就跟map一样,科普完毕,下面开始添加数据。
insert
通过contentProvider扫描手机本地视频
记得要获得read storage权限
最后通过listview展示效果图






网友评论