您的位置:首页 > 编程语言

第一行代码学习笔记,第七章 内容提供者

2015-05-13 10:42 183 查看
一、内容提供者(Content Provider)用法:

1,使用现有的内容提供者来读取操作相应程序中的数据

2,创建自己的内容提供者给我们程序的数据提供外部访问接口

1.1 使用ContentResolver类访问其他程序中的数据

1)通过Context中的getContentResolver()方法获取ContentResolver的实例

ContentResolver contentResolver = Context.getContentResolver();

2)使用ContentResolver类提供的insert() update() delete() query()来进行数据的CRUD操作

添加数据:将数据组装到ContentValues中,然后调用ContentResolver的insert()方法,将Uri和ContentResolver作为参数传入

ContentValues values = new ContentValues();

values.put("column1","text");

values.put("column2", 1);

getContentResolver().insert(uri, values);

更新数据:

ContentValues values = new ContentValues();

values.put("column1", "");

getContentResolver().update(uri, values, "column1 = ? and column2 = ?", new String [] {"text", "1"});

删除数据:

getContentResolver().delete(uri, "column2 = ?", new String[] {"1"});

查找数据:

Cursor cursor = getContentResolver().query(uri, projection , selection, selectionArgs, sortOrder);

uri:内容Uri 对应的Sql语句的from table_name

projection: select column1, column 2 指定查找的列名

selection: where column = value 指定where的约束条件

selectionArgs:为where中的占位符提供具体的值

orderBy order by column1 ,column2 指定结果排列方式

二、创建内容提供器

新建一个类去继承ContentProvider并重写其中的六个方法

public class MyProvider extends ContentProvider {

@override

//初始化内容提供器的时候调用。通常在这里完成对数据库的创建和升级等操作

public boolean onCreate(){

return false;

}

@override

//从内容提供器中查询数据。uri确定哪张表,projection确定哪些列,selection selectionArgs确定哪些行,sortOrder用于对结果进行排列

public Cursor query(Uri uri, String[] projection, String selection,

String[] selectionArgs, String sortOrder) {

return null;

}

@override

向内容提供者中添加一条数据

public Uri insert(Uri uri, ContentValues values) {

return null;

}

@override

//更新已有数据

public int update(Uri uri,ContentValues values, String selection, String[] selectionArgs){

return 0;

}

@override

//删除数据

public int delete(Uri uri, String selection, String[] selectionArgs) {

return 0;

}

@override

//根据传入的URI返回相应的MIME类型

public String getType(Uri uri) {

return null;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: