Customized content provider
来源:互联网 发布:小型防身武器知乎 编辑:程序博客网 时间:2024/06/06 18:19
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sqlite" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:name="com.example.sqlite.BookStoreProvider" android:authorities="com.example.sqlite.provider" <span style="font-size:24px;"> <span style="color:#ff0000;">android:exported="true"</span></span> > <!--这个真不能省--> </provider> </application></manifest>
package com.example.sqlite;import com.example.sqlite.DBHelper.TABLE_Book;import com.example.sqlite.DBHelper.TABLE_Category;import android.content.ContentProvider;import android.content.ContentValues;import android.content.UriMatcher;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.net.Uri;public class BookStoreProvider extends ContentProvider {public static final String AUTORITY = "com.example.sqlite.provider";public static final int BOOK_DIR = 0;public static final int BOOK_ITEM = 1;;public static final int CATEGORY_DIR = 2;public static final int CATEGORY_ITEM = 3;private static UriMatcher matcher;private DBHelper helper;static {matcher = new UriMatcher(UriMatcher.NO_MATCH);matcher.addURI(AUTORITY, "book", BOOK_DIR);matcher.addURI(AUTORITY, "book/#", BOOK_ITEM);matcher.addURI(AUTORITY, "category", CATEGORY_DIR);matcher.addURI(AUTORITY, "category/#", CATEGORY_ITEM);}@Overridepublic boolean onCreate() {helper = new DBHelper(getContext(), null, 2);return true;}@Overridepublic Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {// TODO Auto-generated method stubSQLiteDatabase db = helper.getReadableDatabase();Cursor cursor = null;switch (matcher.match(uri)) {case BOOK_DIR:cursor = db.query(DBHelper.TABLE_Book.TABLE_NAME, projection, selection, selectionArgs, null, null,sortOrder);break;case BOOK_ITEM:String bookID = uri.getPathSegments().get(1);cursor = db.query(DBHelper.TABLE_Book.TABLE_NAME, projection, DBHelper.TABLE_Book.COL_ID + " = ?",new String[] { bookID }, null, null, null);break;case CATEGORY_DIR:cursor = db.query(DBHelper.TABLE_Category.TABLE_NAME, projection, selection, selectionArgs, null, null,sortOrder);break;case CATEGORY_ITEM:String cateID = uri.getPathSegments().get(1);cursor = db.query(DBHelper.TABLE_Category.TABLE_NAME, projection, DBHelper.TABLE_Category.COL_CateID+ " = ?", new String[] { cateID }, null, null, null);break;default:break;}return cursor;}@Overridepublic String getType(Uri uri) {// TODO Auto-generated method stubswitch (matcher.match(uri)) {case BOOK_DIR:return "vnd.android.cursor.dir/vnd.com.example.sqlite.provider.book";case BOOK_ITEM:return "vnd.android.cursor.item/vnd.com.example.sqlite.provider.book";case CATEGORY_DIR:return "vnd.android.cursor.dir/vnd.com.example.sqlite.provider.category";case CATEGORY_ITEM:return "vnd.android.cursor.item/vnd.com.example.sqlite.provider.category";}return null;}@Overridepublic Uri insert(Uri uri, ContentValues values) {// TODO Auto-generated method stubSQLiteDatabase db = helper.getWritableDatabase();Uri returnUri = null;long newID = -1;switch (matcher.match(uri)) {case BOOK_DIR:case BOOK_ITEM:newID = db.insert(DBHelper.TABLE_Book.TABLE_NAME, null, values);returnUri = Uri.parse("content://" + AUTORITY + "/Book/" + newID);break;case CATEGORY_DIR:case CATEGORY_ITEM:newID = db.insert(DBHelper.TABLE_Category.TABLE_NAME, null, values);returnUri = Uri.parse("content://" + AUTORITY + "/Category/" + newID);break;default:break;}return returnUri;}@Overridepublic int delete(Uri uri, String selection, String[] selectionArgs) {// TODO Auto-generated method stubSQLiteDatabase db = helper.getWritableDatabase();int id = 0;switch (matcher.match(uri)) {case BOOK_DIR:case BOOK_ITEM:id = db.delete(TABLE_Book.TABLE_NAME, selection, selectionArgs);break;case CATEGORY_DIR:case CATEGORY_ITEM:id = db.delete(TABLE_Category.TABLE_NAME, selection, selectionArgs);break;default:break;}return id;}@Overridepublic int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {// TODO Auto-generated method stubSQLiteDatabase db = helper.getWritableDatabase();int rowsAffected = 0;switch (matcher.match(uri)) {case BOOK_DIR:case BOOK_ITEM:rowsAffected = db.update(TABLE_Book.TABLE_NAME, values, selection, selectionArgs);break;case CATEGORY_DIR:case CATEGORY_ITEM:rowsAffected = db.update(TABLE_Category.TABLE_NAME, values, selection, selectionArgs);break;default:break;}return rowsAffected;}}
0 0
- Customized content provider
- Content provider
- Content Provider
- content provider
- Content Provider
- Content Provider
- Content Provider
- Content Provider
- Content Provider
- Content Provider
- Content Provider
- content provider
- Content Provider
- Content Provider
- content provider
- Content Provider
- content Provider
- Content Provider
- Matlab2012a下配置LibSVM—3.18
- c++实现socket通信测试
- 根据客流和国家
- 拼写纠错功能实现
- 【恒天云技术分享系列10】OpenStack块存储技术
- Customized content provider
- ARM指令集
- 系统设计
- Python强大的内置方法
- 实时内存数据库eXtremeDB 在linux系统下的java开发环境搭建
- smarty if conditions
- Aptana插件的安装
- apache 设置 路由重写
- QSlider进度条