ContentProvider 实现
来源:互联网 发布:雷尼绍测头编程 编辑:程序博客网 时间:2024/06/05 14:58
1.定义数据库的元数据
public class BookProviderMetaData { public static final String AUTHORITY = "com.androidbook.provider.BookProvider"; public static final String DATABASE_NAME = "book.db"; public static final int DATABASE_VERSION = 1; public static final String BOOKS_TABLE_NAME = "books"; private BookProviderMetaData() {} //inner class describing columns and their types public static final class BookTableMetaData implements BaseColumns { private BookTableMetaData() {} public static final String TABLE_NAME = "books"; //uri and mime type definitions public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/books"); public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.androidbook.book"; public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.androidbook.book"; public static final String DEFAULT_SORT_ORDER = "modified DESC"; //Additional Columns start here. //string type public static final String BOOK_NAME = "name"; //string type public static final String BOOK_ISBN = "isbn"; //string type public static final String BOOK_AUTHOR = "author"; //Integer from System.currentTimeMillis() public static final String CREATED_DATE = "created"; //Integer from System.currentTimeMillis() public static final String MODIFIED_DATE = "modified"; }}
2.继承contentProvider ,重写重要的几个方法
package com.test.android.skin.main;import java.util.List;import android.content.ContentProvider;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.net.Uri;import android.util.Log;public class Provider extends ContentProvider{private SQLiteOpenHelper helper;@Overridepublic boolean onCreate() {helper = new SqLHelper(this.getContext());return false;}@Overridepublic Cursor query(Uri uri, String[] projection, String selection,String[] selectionArgs, String sortOrder) {List<String> paths = uri.getPathSegments();String tableName = paths.get(0);SQLiteDatabase db = helper.getReadableDatabase();return db.query(tableName, null, null, null, null, null, null);}@Overridepublic String getType(Uri uri) {return null;}@Overridepublic Uri insert(Uri uri, ContentValues values) {List<String> paths = uri.getPathSegments();String tableName = paths.get(0);Log.d("Tag",tableName + ":::"+uri.toString());SQLiteDatabase db = helper.getWritableDatabase();db.insert(tableName, null, values);return uri;}@Overridepublic int delete(Uri uri, String selection, String[] selectionArgs) {return 0;}@Overridepublic int update(Uri uri, ContentValues values, String selection,String[] selectionArgs) {return 0;}}
getType 需要返回mime类型的东西,根据uri的类型
调用Uri的内容不必多说
- ContentProvider 实现
- ContentProvider 的简单实现
- ContentProvider实现数据共享
- 程序实现ContentProvider
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- Android ContentProvider简单实现
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现数据共享
- ContentProvider实现IPC
- ContentProvider的实现
- ContentProvider实现增删改
- iOS、Android、WebOS系统体系架构的比较
- Android Style与Theme .
- vim替换
- Tomcat内存设置
- Qt Url访问资源文件
- ContentProvider 实现
- 混合像元分解研究综述——线性混合像元分解算法
- Livestream Broadcaster:整合在线服务的高清视频编码器
- PL/SQL中不通过游标把值添加到集合中
- MFC设计局域网对战五子棋游戏(五)游戏中的数据结构和算法
- jxl读写excel常见操作搜集整理
- ANSI UNICODE去除关键字
- Android SDK与Eclipse开发环境搭建最新版
- via 变量