黑马程序员技术交流社区
标题:
android之Content Provider组件
[打印本页]
作者:
android_vae
时间:
2016-6-1 13:29
标题:
android之Content Provider组件
Content Provider为存储和获取数据提供了统一的接口,使用Content Provider可以在不同的应用程序之间共享数据。
Content Provider使用表的形式组织数据
URI:统一资源标识符
1.每一个ContentProvider都拥有一个公共的URI,这个URI用于表示这个ContentProvider所提供的数据。
2.Android提供的ContentProvider都放在android.provider包中。
CoontentProvider提供的常用方法:
•query( ) //查询
•inert( ) //插入
•update( ) //更新
•delete( ) //删除
•getType( ) //得到数据类型
•onCreate( ) //创建时的回调函数
实现ContentProvider的过程
1. 定义一个CONTENT_URI(创建一个类,可以在子类中实现BaseColumns接口)
public static final Uri CONTENT_URI = Uri.parse(“content://完整ContentProvider类名”);
表中的字段也用常量定义
表类型:(访问整张表)
Public static final String CONTENT_TYPE=”vnd.android.cursor.dir/vnd.XXX”;
访问一条数据:
Public static final String CONTENT_TYPE¬_ITEM=”vnd.android.cursor.item/vnd.XXX”;
默认排序方法:
Public static final String DEFAULT_SORT_ORDER=”_id desc”;
2. 定义一个ContentProvider继承类,并实现query、inert、update、delete、getType、onCreate等方法
Private static final UriMatcher uriMatcher = new UriMatcher( );
Static{
uriMatcher.addURI(“完整类名”,”路径”,编号);
••••••
}
//根据传入的Uri,返回Uri表示的数据类型
getType(Uri uri){ }
public static HashMap<String, String> MyMap;
static {
MyMap = new HashMap<String , String>;
MyMap.put(字段名, 别名); }
3. 在AndroidManifest.xml中声明
android:name=””
android:authorities=”包名加类名”
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2