第一行代码学习笔记,第七章 内容提供者
来源:互联网 发布:python post json 编辑:程序博客网 时间:2024/05/16 17:46
一、内容提供者(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;
}
}
- 第一行代码学习笔记,第七章 内容提供者
- 第一行代码笔记,第七章-----探究内容提供者
- 《第一行代码》学习之旅--第7章-内容提供者ContentProvider
- 第七章 内容提供者
- Android第一行代码学习笔记五----内容提供器
- 第一行代码学习笔记 第二章
- 《第一行代码》学习笔记
- 《第一行代码》学习笔记 第 2 章
- android学习笔记 内容提供者
- Android学习笔记-----------内容提供者
- 《第一行代码》学习笔记,第一、二章
- Android学习笔记—第一行代码第二章
- Android第一行代码学习笔记总结
- 《Android第一行代码》学习笔记
- 《Android第一行代码》学习笔记
- 《第一行代码》学习笔记之网络技术
- 《第一行代码》学习笔记之服务
- 第一行代码学习笔记(一)
- char * a, char ** a, char * a[], char a[][], char * a[][], char ** a[][], char * a [][][], and so on
- C语言文件操作之fgets()
- 进程栈的学习
- Intellij IDEA 断点不可用 No executable code found
- Struts2的工作原理
- 第一行代码学习笔记,第七章 内容提供者
- bug.150512
- FND_ORG.CHOOSE_ORG
- 我们应当怎样爱国?
- eclipse hibernate入门实例
- 学习ASP.NET MVC5框架揭秘笔记-IIS/ASP.NET管道(三)
- Android 使用开源库StickyGridHeaders来实现带sections和headers的GridView显示本地图片效果
- CSS样式字体设置失效,呈现乱码
- Another MySQL daemon already running with the same unix socket.