Content Provider 使用

Content Provider 使用

ContentResolver:当外部应用需要对ContentProvider中的数据进行添加、删除、修改和查询操作时,可以使用ContentResolver 类来完成,要获取ContentResolver 对象,可以使用Activity提供的getContentResolver()方法。 ContentResolver使用insert、delete、update、query方法,来操作数据。
ContentProvider类主要方法的作用:
public boolean onCreate():该方法在ContentProvider创建后就会被调用,Android开机后,ContentProvider在其它应用第一次访问它时才会被创建。

public Uri insert(Uri uri, ContentValues values):该方法用于供外部应用往ContentProvider添加数据。

public int delete(Uri uri, String selection, String[] selectionArgs):该方法用于供外部应用从ContentProvider删除数据。

public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs):该方法用于供外部应用更新ContentProvider中的数据。

public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder):该方法用于供外部应用从ContentProvider中获取数据。

public String getType(Uri uri):该方法用于返回当前Url所代表数据的MIME类型。

如果操作的数据属于集合类型,那么MIME类型字符串应该以vnd.android.cursor.dir/开头,

例如:要得到所有person记录的Uri为content://com.ljq.provider.personprovider/person,那么返回的MIME类型字符串应该为:”vnd.android.cursor.dir/person”。

如果要操作的数据属于非集合类型数据,那么MIME类型字符串应该以vnd.android.cursor.item/开头,

例如:得到id为10的person记录,Uri为content://com.ljq.provider.personprovider/person/10,那么返回的MIME类型字符串为:”vnd.android.cursor.item/person”。

private void displayRecords() {
    //该数组中包含了所有要返回的字段
 String columns[] = new String[] { People.NAME, People.NUMBER };
   Uri mContacts = People.CONTENT_URI;
   Cursor cur = managedQuery(
      mContacts,
      columns,  // 要返回的数据字段
     null,          // WHERE子句
     null,         // WHERE 子句的参数
     null         // Order-by子句
 );
   if (cur.moveToFirst()) {
       String name = null;
       String phoneNo = null;
       do {
          // 获取字段的值
        name = cur.getString(cur.getColumnIndex(People.NAME));
         phoneNo = cur.getString(cur.getColumnIndex(People.NUMBER));
         Toast.makeText(this, name + ” ” + phoneNo, Toast.LENGTH_LONG).show();
      } while (cur.moveToNext());
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值