Android学习笔记--Content Provider 1

MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

1 . Content Provider 基本概念
A: Content Provider提供为存储和获取数据提供了统一的接口
B: 使用Content Provider可以在不同的应用程序之间共享数据
C: Android为常见的一些数据提供了Content Provider(包括音频 视频,图片和通讯录等等)
 
Android学习笔记--Content Provider 1 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝
2 . Uri
A:每一个ContnetProvider都拥有一个公共的URI,这个URI用于表示这个ContnetProvider所提供的数据
B: Android所提供的ContentProvider都存放在android.provider包当中
3 . Contnet Provider 实现方法
Query 
Insert
Update
Delete
getType
onCreate
4 . 实现ContentProvider的过程
A: 定义一个Content_URI 常量
B: 定义一个类 继承ContentProvider
C: 实现query , insert update,delete getType,onCreate方法;
D: AnroidManifest.xml当中进行声明;

例 :  // DatabaseHelper所为一个访问SQLite的助手类, 提供两个方面的功能
// 第一, getReadableDatabase() 和 getWritableDatabasr() 可以获得SQLiteDatabase对象
// 第二, 提供onCreate 和 onUpgrade 两个回调函数 , 允许我们在创建和升级数据库时, 进行操作
例 : public class DatabaseHelper extends SQLiteOpenHelper {
  // 数据库版本号
Private static final int VERSION = 1;

// 必须的构造函数
Public DatabaseHelper (Context context , String name , CursorFactory factory , int version) {
Super(context , name , factory , version);
}

Public DatabaseHelper (Context context , String name ,  int version) {
Super(context , name , null , version);
}

Public DatabaseHelper (Context context , String name) {
Super(context , name , null , VERSION);
}

Public void onCreate(SQLiteDatabase db) {
System.out.println("create a database");
// 拼出了建表的语句
db..execSQL("create table" +  FirstMetaData.USER_TABLE_NAME
+ "(" + FirstMetaData.UserTableMetaData._ID
+ "INTEGER PRIMARY KEY AUTOINCREMENT,"
+ FirstMetaData.UserTableMetaData.USER_NAME
+ " varchar(20));";
}


Public void onUpgrade(SQLiteDatabase db) {
System.out.println("update a database");
}
}

ContentProviderActivity 例  1 . 声明控件对象(略)
 2 . 获得控件对象(略)
 3 . 绑定事件(略)
 4 . 创建监听器对象
// insert
Public void onClick(View v) {
ContentValues values = new ContentValues ();
Values.put( FirstMetaData.UserTableMetaData.USER_NAME , "zhangsan" );
Uri uri = getContentesolver().insert( FirstMetaData.UserTableMetaData.CONTENT_URI , values );
System.out.println("uri ---->" + uri.toString());
}

// query
Public void onClick(View v) {
Cursor c= getContentResolver().query(
FirstMetaData.UserTableMetaData.CONTENT_URI , null , null , null , null
) ;
While(c.moveToNext()) {
System.out.println(c.getString(c.getColumnIndex(UserTableMeatData.USER_NAME)));
}

}




     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360568,如需转载请自行联系原作者



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值