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);
}
});
}
}
相关文章推荐
- LC115 Distinct Subsequences
- leetcode:Permutation Sequence
- codeforces 3D . Least Cost Bracket Sequence 贪心
- CodeForces 622A--F - Infinite Sequence
- 用UIToolBar实现简单毛玻璃效果
- POJ1947 Rebuilding Roads(树形DP)
- stl之适配器容器——stack, queue, priority_queue
- stl之序列容器——deque
- 利用UIImageJPEGRepresentation与UIGraphicsBeginImageContext进行图片压缩的简单比较
- 优先队列(Priority Queue)
- LeetCode 之 Unique Paths
- 63. Unique Paths II
- Android spannableStringBuilder用法整理
- UVA1152 4 Values whose Sum is 0
- GUI布局
- Penguins DbTools数据库管理移植差分工具(EXCEL相关) ver 20160313
- android studio 报Error:failed to find Build Tools revision XXXX
- php使用mysql_query查询超大结果集超内存的解决方法
- leetcode:Repeated DNA Sequences
- PowerBuilder创建和链接数据库