首页 > 代码库 > Android中ContentProvider的简单使用
Android中ContentProvider的简单使用
1、新建继承ContentProvider的类
package com.wangzhu.demo;import android.content.ContentProvider;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.net.Uri;public class MyContentProvider extends ContentProvider { /** * ContentProvider的数据访问路径 */ public static final Uri URI = Uri.parse("content://com.wangzhu.provider"); private SQLiteDatabase database; @Override public int delete(Uri arg0, String arg1, String[] arg2) { return 0; } @Override public String getType(Uri arg0) { return null; } @Override public Uri insert(Uri uri, ContentValues values) { database.insert("tab", "_id", values); return null; } @Override public boolean onCreate() { database = getContext().openOrCreateDatabase("myProvider.db3", Context.MODE_PRIVATE, null); database.execSQL("create table IF NOT EXISTS tab(_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL)"); return true; } @Override public Cursor query(Uri arg0, String[] arg1, String arg2, String[] arg3, String arg4) { Cursor cursor = database.query("tab", null, null, null, null, null, null); return cursor; } @Override public int update(Uri arg0, ContentValues arg1, String arg2, String[] arg3) { return 0; }}
2、在AndroidManifest.xml中为应用程序添加ContentProvider的访问权限
<!-- android:exported设置为true,表示其他应用可以访问,否则不可以访问 --> <provider android:name="MyContentProvider" android:authorities="com.wangzhu.provider" android:exported="true" > </provider>
3、进行插入与查询
final Uri uri = MyContentProvider.URI; /** * 往Provider中写入数据 */ protected void write() { //使用getContentResolver()方法获取ContentResolver对象 ContentResolver resolver = getContentResolver(); ContentValues values = null; values = new ContentValues(); values.put("name", "Java"); //调用ContentResolver对象的insert方法,插入数据 resolver.insert(uri, values); values = new ContentValues(); values.put("name", "Swift"); resolver.insert(uri, values); values = new ContentValues(); values.put("name", "Python"); resolver.insert(uri, values); values = new ContentValues(); values.put("name", "C#"); resolver.insert(uri, values); } /** * 读取Provider中的内容 */ protected void read() { StringBuilder accum = new StringBuilder(); //使用getContentResolver()方法获取ContentResolver对象 //调用ContentResolver对象的query方法,查询数据,返回Cursor对象 Cursor cursor = getContentResolver().query(uri, null, null, null, null); cursor.moveToFirst(); for (int i = 0, count = cursor.getCount(); i < count; i++) { accum.append(cursor.getString(cursor.getColumnIndex("name"))) .append("\n"); cursor.moveToNext(); } System.err.println("read: " + accum); }
Android中ContentProvider的简单使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。