您的位置:首页 > 产品设计 > UI/UE

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

2016-03-13 21:01 357 查看


[title2]一,用法:

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);[/title2]

四.一个例子:
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);

}

});

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: