android ContentProvider

原创 2012年03月23日 19:07:13

1

package com.android.test.broadcast;

import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;

public class MyContentProvider extends ContentProvider{

  private SQLiteDatabase mySqlDB;
  private DatabaseHelper mDBHelpler;
  private static final String DATABASE_NAME = "Users.db";
  private static final int DATABASE_VERSION = 1;
  private static final String TABLE_NAME = "contcats";
  private static final String TAG ="MyContentProvider";

  private static class DatabaseHelper extends SQLiteOpenHelper {
  DatabaseHelper(Context context) {
  super(context, DATABASE_NAME, null, DATABASE_VERSION);
  }

  @Override
  public void onCreate(SQLiteDatabase db) {
   db.execSQL("Create table " + TABLE_NAME + "( _id INTEGER PRIMARY KEY AUTOINCREMENT, CONTACTS_NAME TEXT,CONTACTS_SEX TEXT,CONTACTS_AGE INTEGER);");
  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
  onCreate(db);
  }
  }

  @Override
  public int delete(Uri uri, String s, String[] as) {
  return 0;
  }

  @Override
  public String getType(Uri uri) {
  return null;
  }

  @Override
  public Uri insert(Uri uri, ContentValues contentvalues) {
   mySqlDB = mDBHelpler.getWritableDatabase();
  long rowId = mySqlDB.insert(TABLE_NAME, "", contentvalues);
  if (rowId > 0) {
  Uri rowUri = ContentUris.appendId(Users.User.ContentUri.buildUpon(), rowId).build();
  getContext().getContentResolver().notifyChange(rowUri, null);
  return rowUri;
  }
  throw new SQLException("Failed to insert row into " + uri);
  }

  @Override
  public boolean onCreate() {
   mDBHelpler = new DatabaseHelper(getContext());
  return (mDBHelpler == null) ? false : true;
  }

  @Override
  public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
  SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
  SQLiteDatabase db = mDBHelpler.getReadableDatabase();
  qb.setTables(TABLE_NAME);
  Cursor c = qb.query(db, projection, selection, null, null, null, sortOrder);
  c.setNotificationUri(getContext().getContentResolver(), uri);
  return c;
  }

  @Override
  public int update(Uri uri, ContentValues contentvalues, String s, String[] as) {
  return 0;
  }

}

22222222222222222222

package com.android.test.broadcast;

import android.net.Uri;
import android.provider.BaseColumns;

public class Users {
 
 public static String user="user";
 public static final String author="com.android.test.broadcast";
 public static final class User implements BaseColumns {
  public static final  Uri ContentUri=Uri.parse("content://com.android.test.broadcast");
  public static final String USER_NAME="user";
 }

}

3333333333333333333333333

<provider android:name="com.android.test.broadcast.MyContentProvider" android:authorities="com.android.test.broadcast"></provider>

 

ContentValues values=new ContentValues();
  values.put("_id", 1);
  values.put("CONTACTS_AGE",21);
  values.put("CONTACTS_SEX", "0");
  values.put("CONTACTS_NAME","hello");
  mContext.getContentResolver().insert(Uri.parse("content://com.android.test.broadcast"), values);
  
  ContentValues values1=new ContentValues();
  values1.put("_id", 2);
  values1.put("CONTACTS_AGE",22);//CONTACTS_AGE
  values1.put("CONTACTS_SEX", "1");//CONTACTS_SEX
  values1.put("CONTACTS_NAME","test");//CONTACTS_NAME
  mContext.getContentResolver().insert(Uri.parse("content://com.android.test.broadcast"), values1);
  
  Cursor myCursor=mContext.getContentResolver().query(Uri.parse("content://com.android.test.broadcast"),null, null,null,null);
  Log.i("============","=========="+myCursor.getCount());

Android ContentProvider

  • 2014年12月19日 11:38
  • 9.31MB
  • 下载

Android ContentProvider全面解析

  • 2016年11月18日 11:24
  • 33.63MB
  • 下载

Android开发之内容提供者——创建自己的ContentProvider(详解)

苦心人天不负卧薪尝胆三千越甲可吞吴,有志者天不负釜底抽薪百二秦川终属楚。...
  • dmk877
  • dmk877
  • 2015年12月29日 09:18
  • 11339

android 数据共享(ContentProvider)

  • 2016年10月04日 16:44
  • 7.79MB
  • 下载

Android四大组件ContentProvider

  • 2016年08月31日 20:37
  • 10.06MB
  • 下载

android基础总结篇之七:ContentProvider之读写短消息

今天我们来讲一下如何利用ContentProvider读写短消息。 上次我们讲了如何通过ContentProvider机制读写联系人,通过读取联系人信息和添加联系人这两种方式对联系人进行操作,相...

android开发contentprovider

  • 2013年08月10日 20:49
  • 1.17MB
  • 下载

android 用ContentProvider操作文件

  • 2012年12月20日 17:36
  • 48KB
  • 下载

Android四大组件之ContentProvider(二)读取设备上的图片、音频和视频

Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,通过Content Provider的方式提供给用户。当设备开机或者有SD卡插拔等事件发生时,...

Android学习之自定义ContentProvider类

  • 2014年10月25日 18:00
  • 1.41MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android ContentProvider
举报原因:
原因补充:

(最多只允许输入30个字)