ContentResolver的四个常用方法:delete().query(),update(),insert()

一,用法:
1..调用ContentResolver对象的getContentReslover方法
2.调用getContentReslover()的方法,即:delete(),query()  , update()  ,insert() ,,
二,详情:
(1)delete():删除,三个参数
 原型:    delete(Uri uri ,  String where, selectionArgs)
 即:Delete row(s) specified by a content URI.
(2)query():查询,五个参数
原型: query(Uri uri , String[] projection, String selection, String[] selectionArgs, String sortOrder)
即:Query the given URI,returing a cursor over the result set.
(3) update():更新,四个参数
原型: update(Uri uri,  ContentValues values ,  String where , String[]  selectionArgs)
即:   update row(s) in a content URI.
(4) insert():插入,即增加,两个参数
原型: insert(Uri uri,  ContentValues values)
即: Insert a row into a table at the given URI.
三,具体用法,如:insert()
//用ContentResolver对象获取getContentResolver()实例
ContentResolver resolver =  getContentResolver();
//用Uri.parse()方法获得uri解析地址
Uri uri = Uri.parse("content://cn.itcast.provider.person.provider/person");          //这是provider提供的地址
//创建ContentValues对象
ContentValues values = new ContentValues();
//放数据
values.put("name","itcast");
values.put("age",25);
//添加数据
resolver.insert(uri,values);


四.一个例子:
package com.example.providertest;


import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends Activity {
private Button addData,updateData,deleteData,queryData;
private String newId;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//为控件绑定id
  addData = (Button) findViewById(R.id.add_data);
  queryData = (Button) findViewById(R.id.query_data);
  updateData = (Button) findViewById(R.id.update_data);
  deleteData = (Button) findViewById(R.id.delete_data);
  
  //添加数据
addData.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//1.获得uri解析地址
Uri uri = Uri.parse("content://com.example.databasetest.provider/book");
//添加数据
ContentValues values = new ContentValues();
values.put("name", "A Clash of Kings");
values.put("author", "George Martin");
values.put("pages", 1040);
values.put("price", 55.55);
  //添加数据
Uri newUri = getContentResolver().insert(uri, values);
newId = newUri.getPathSegments().get(1);
}
});

//查询数据
queryData.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri
.parse("content://com.example.databasetest.provider/book");
Cursor cursor = getContentResolver().query(uri, null, null,
null, null);
//判空
if (cursor != null) {
//遍历
while (cursor.moveToNext()) {
//取出数据
String name = cursor.getString(cursor
.getColumnIndex("name"));
String author = cursor.getString(cursor
.getColumnIndex("author"));
int pages = cursor.getInt(cursor
.getColumnIndex("pages"));
double price = cursor.getDouble(cursor
.getColumnIndex("price"));
//打印日志
Log.d("MainActivity", "book name is " + name);
Log.d("MainActivity", "book author is " + author);
Log.d("MainActivity", "book pages is " + pages);
Log.d("MainActivity", "book price is " + price);
}
cursor.close();
}
}
});


//更新数据
updateData.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri
.parse("content://com.example.databasetest.provider/book/" + newId);
ContentValues values = new ContentValues();
values.put("name", "A Storm of Swords");
values.put("pages", 1216);
values.put("price", 24.05);
getContentResolver().update(uri, values, null, null);
}
});


//删除数据
deleteData.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri
.parse("content://com.example.databasetest.provider/book/" + newId);
getContentResolver().delete(uri, null, null);
}
});
}


}



  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: contentResolver是Android系统提供的一个类,用于访问应用程序的数据。它可以通过URI(Uniform Resource Identifier)来访问应用程序的数据,例如:访问通讯录、短信、音乐、视频等。contentResolver可以返回不同类型的数据,例如:Cursor、Bitmap、InputStream等,具体返回的数据类型取决于所访问的数据的类型和内容。例如,当通过contentResolver访问通讯录时,可能会返回一个Cursor对象表示通讯录中的所有联系人。 ### 回答2: contentResolver是Android中的一个类,用于实现应用程序与系统的内容提供者之间的通信和数据交互。它提供了一套方法和接口,让开发者可以在应用程序中访问和操作各种类型的数据,例如系统设置、通信录、短信、日历、媒体文件等。 通过contentResolver,应用程序可以与系统中已经注册的内容提供者进行交互,获取、插入、更新和删除数据。它提供了一系列方法,例如query()用于查询数据,insert()用于插入数据,update()用于更新数据,delete()用于删除数据等。 使用contentResolver,开发者可以通过URI(Uniform Resource Identifier)来标识要操作的数据,URI是一个统一的资源标识符,类似于一个地址,用于指定要操作的数据的位置和类型。通过contentResolver方法,可以根据指定的URI对数据进行读取、写入和更新等操作。 除了与系统的内容提供者进行交互,contentResolver还可以用于应用程序之间的数据共享。应用程序可以通过contentResolver将数据共享给其他应用程序,也可以通过contentResolver获取其他应用程序共享的数据。这种方式可以方便地实现应用程序之间的数据共享和交流。 总之,contentResolver返回的是一个用于与系统内容提供者进行交互和操作数据的对象,它提供了一套方法和接口,使应用程序可以方便地访问和操作各种类型的数据。 ### 回答3: ContentResolver是Android系统提供的用于访问和操作各种数据类型的接口。它提供了一种统一的方式,使得应用程序可以访问不同的数据存储,如数据库、文件系统和网络资源等。ContentResolver返回的是与应用程序相关的Context的ContentResolver对象。 ContentResolver可以用于执行各种数据操作,例如查询数据、插入数据、更新数据和删除数据等。它被用于处理各种类型的数据,如联系人、短信、电话记录、媒体文件、日历事件和设置等。 通过ContentResolver,应用程序可以与其他应用程序共享数据。它允许应用程序查询其他应用程序提供的数据,并根据需要进行读取或修改。 ContentResolver可以通过调用系统提供的相关方法来执行数据操作,如query()方法用于查询数据,insert()方法用于插入数据,update()方法用于更新数据,delete()方法用于删除数据等。 与ContentResolver一起使用的还有ContentProvider,它提供了数据的访问和管理接口,通过ContentResolverContentProvider进行数据的读取和写入。 总之,ContentResolver是Android系统提供的一个重要接口,它可以让应用程序访问和操作不同的数据存储,使得数据共享和交互变得更加简单和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值