android的内容提供者
来源:互联网 发布:windows vista界面 编辑:程序博客网 时间:2024/05/29 15:42
在Android中我们有时需要操作一些我们可能没有权限去操作的内容,这时候就需要一个内容提供者为我们提供一个接口,通过此接口我们就可以对我们想操作的数据进行操作(此处是对数据库的操作其他的不知道还有没有这样的情况)。
在创建内容提供者的时候我们需要建立一个自己的类 他继承contentprovider类 实现它的方法 这就是创建了一个内容提供者。例:
public class PersonDbProvider extends ContentProvider {//uri匹配private static UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);private static final int INSERT = 1;private static final int DELETE = 2;private static final int UPDATE = 3;private static final int QUERY = 4;private PersonSqliteOpenHelper helper ;//添加一组匹配规则static{matcher.addURI("com.jit.db.personprovider", "insert", INSERT);matcher.addURI("com.jit.db.personprovider", "delete", DELETE);matcher.addURI("com.jit.db.personprovider", "update", UPDATE);matcher.addURI("com.jit.db.personprovider", "query", QUERY);}// 路径为 content://com.jit.db.personprovider/insert 添加路径// 路径为 content://com.jit.db.personprovider/delete 删除路径// 路径为 content://com.jit.db.personprovider/update 更新路径// 路径为 content://com.jit.db.personprovider/query 查找路径@Overridepublic int delete(Uri arg0, String arg1, String[] arg2) {// TODO Auto-generated method stubreturn 0;}@Overridepublic String getType(Uri arg0) {// TODO Auto-generated method stubreturn null;}@Overridepublic Uri insert(Uri arg0, ContentValues arg1) {// TODO Auto-generated method stubreturn null;}@Overridepublic boolean onCreate() {// TODO Auto-generated method stubhelper = new PersonSqliteOpenHelper(getContext());return false;}@Overridepublic Cursor query(Uri uri, String[] columns, String selection, String[] selectionArgs,String orderBy) {// TODO Auto-generated method stubSQLiteDatabase db = helper.getReadableDatabase();if(matcher.match(uri) == QUERY){Cursor cursor = db.query("person", columns, selection, selectionArgs, null, null, orderBy);return cursor;}else{throw new IllegalArgumentException("路径匹配不正确");}}@Overridepublic int update(Uri arg0, ContentValues arg1, String arg2, String[] arg3) {// TODO Auto-generated method stubreturn 0;}}
第二步:在AndroidManifest.xml文件中添加内容提供者的标签:
<provider android:name="com.jit.db.PersonDbProvider" android:authorities="com.jit.db.personprovider"> </provider>
第三步:可以创建一个按钮的点击事件用来测试:
public void onclick(View v){ ContentResolver resolver = getContentResolver(); Uri uri = Uri.parse("content://com.jit.db.personprovider/query"); Cursor cursor = resolver.query(uri, null, null, null, null); while(cursor.moveToNext()){ String name = cursor.getString(cursor.getColumnIndex("name")); int id = cursor.getInt(cursor.getColumnIndex("id")); String number = cursor.getString(cursor.getColumnIndex("number")); System.out.println("name:"+name+" id:"+id+" number:"+number); } cursor.close(); }完结!
0 0
- android的内容提供者
- Android内容提供者的实现
- android的内容提供者范例
- Android的内容观察者、通知、内容提供者
- Android中内容提供者ContentProvider的使用
- Android中内容提供者ContentProvider的详解
- Android 内容提供者ContentProvider的使用
- 文章标题android 的ContentProvider内容提供者
- Android里内容提供者ContentProvider的使用
- Android中内容提供者ContentProvider的详解
- android基础--内容提供者
- Android ContentProvider(内容提供者)
- Android 内容提供者
- android内容提供者ContentProvider
- android---内容提供者
- Android--- ContentProvider(内容提供者)
- Android基础--内容提供者
- android下内容提供者
- 有符号char的+、-法位运算过程
- hdu 5333 Undirected Graph (LCT)
- qt学习第二课:建立链接
- HDU 4983/BC 6C Goffi and GCD
- ASP.NET MsChart 控件出错:为 ChartImg.axd 执行子请求时出错
- android的内容提供者
- CNN卷积神经网络推导和实现
- 从NSDictionary 取出int型的数据
- 二叉树的前序遍历三种方法
- Spring 循环引用 ——理解singleton与prototype初始化的区别
- CSS 整理(3)
- Ubuntu_1204_64bit 通过工具 squid cache 搭建代理服务器
- Subsequence
- C 你妹儿啊~~~~~~