安卓学习 之 ContentResolver内容提供者(七)

本文介绍了Android中ContentResolver的使用,包括如何读取系统联系人,以及详细步骤来创建自定义内容提供者,涵盖ContentProvider的六个关键方法,通过URIMatcher实现URI匹配,并讲解了如何获取和设置MIME类型。
摘要由CSDN通过智能技术生成
简介

Android持久化技术一章中所保存的数据都只能在当前应用程序中访问,但跨程序数据共享是由Content Provider提供的,譬如说:电话薄、短信、媒体库中的信息。

一、基本用法

  1. 构建内容URI对象,com.example.app是包名,table是表名,将内容URI字符串解析成URI对象.
Uri uri = Uri.parse("content://com.example.app.provider/table1")
  1. 利用如下的方法进行查询,查询完之后为cursor对象.
Cursor cursor = getContentResolver().query( uri,
projection, selection, selectionArgs, sortOrder);
query()方法参数 对应SQL 部分 描述
uri from table_name 指定查询某个应用程序下的某一张表
projection select column1, column2 指定查询的列名
selection where column = value 指定 where 的约束条件
selectionArgs - 为 where 中的占位符提供具体的值
orderBy order by column1, column2 指定查询结果的排序方式
  1. 利用如下代码将cursor对象的值一条条读出来。
if (cursor != null) {
    while (cursor.moveToNext()) {
        String column1 = cursor.getString(cursor.getColumnIndex("column1")); 
        int column2 = cursor.getInt(cursor.getColumnIndex("column2"));
    }
    cursor.close();
}
  1. 增删改(本质一样,就是用法稍微有点区别)
//添加一条("text",1)的数据
ContentValues values = new ContentValues(); 
values.put("column1", "text"); 
values.put("column2", 1); 
getContentResolver().insert(uri, values);

//将("text",1)数据的第一列设置为
ContentValues values = new ContentValues(); 
values.put("column1", "");
getContentResolver().update(uri, values, "column1 = ? and column2 = ?", new String[] {"text", "1"});

//将第二列为1的数据删除
getContentResolver().delete(uri, "column2 = ?", new String[] { "1" });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值