访问内容提供者(和上文联系),测试

本文介绍了一个自定义的SQLite数据库内容提供者,演示了如何通过ContentResolver进行数据的插入、更新及查询操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内容提供者提供了对自定义的一个SQLite数据库的表person中增删改查,对象为person(bean)

public class TestPersonContentProvider extends AndroidTestCase
{

  private static final String TAG = "TestPersonContentProvider";

  public void testInsert()
  {
    //访问地址:content://要访问的包名.类名/person/insert

    ContentResolver resolver = getContext().getContentResolver(); //内容提供者的访问类

    ContentValues values = new ContentValues();
    values.put("name", "sz");
    values.put("age", "20");

    resolver.insert(Uri.parse("content://要访问的包名.类名/person/insert"), values);
  }

  public void testUpdate()
  {
    ContentResolver resolver = getContext().getContentResolver(); //内容提供者的访问类

    ContentValues values = new ContentValues();

    values.put("name", "1505");
    String where = "id = ?";
    String[] selectionArgs = new String[]{"1"};

    int id = resolver.update(
    Uri.parse("content://要访问的包名.类名/person/update"), 
    values , 
    where, 
    selectionArgs);
    Log.d(TAG, "UPDATE .... = " + id);
  }

  public void testQuery()
  {
    ContentResolver resolver = getContext().getContentResolver(); //内容提供者的访问类

    //content://要访问的包名.类名/person/query
    String[] projection = new String[]{"id","name","age"};

    Cursor cursor = resolver.query(
    Uri.parse("content://要访问的包名.类名/person/query"), 
    projection, 
    null, 
    null, 
    null);

    if(null != cursor && cursor.getCount() > 0)
    {
      while(cursor.moveToNext())
      {
        Integer id = cursor.getInt(0);
        String name = cursor.getString(1);
        Integer age = cursor.getInt(2);

        Log.d(TAG, "id=" + id + " name= " + name + " age= " + age);
      }

      cursor.close(); // 一定记住不要忘了关闭游标
    }
  }

}

注意权限:与内容提供者中想对应的权限

<uses-permission android:name="aaa.bbb.ccc"/>
<uses-permission android:name="aaa.bbb.ccc.ddd"/>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值