内容提供者
在Android当中自定义一个数据内容提供者的过程。
该内容提供者都是与数据相关联的,要从数据库当中读取到相关的数据。所以首先要在src当中定义一个数据的java类。
在Android当中定义一个数据类,一定要注意是该类继承于SQLiteOpenHelper类。并且在定义好的类当中要实现数据库当中的四个参数。具体如下为例:
public MyOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, "people.db", null, 1);//数据库的四个参数,分别是上下文,数据库名称,和数据工厂和版本号,一般只要命名数据库名字和版本号就好。 // TODO Auto-generated constructor stub }
其后的方法体要重写创建数据库的语句。在这一段的语句当中是跟在SQLiteExperter当中创建创建数据的语法相似。换句话讲就是将创建数据库的语句写在了java类当中了。
@Override public void onCreate(SQLiteDatabase db) { //在这里创建表.这里括号中的语句是要写入到数据库当中当做数据库写入的语句。 db.execSQL("create table person(_id integer primary key autoincrement,name char(10),salary integer(10))"); }
写好了以上创建数据库的java类,再写一个测试方法类即可。测试方法类要继承于AndroidTestCase这个大类。
2.在运行之前,在清单配置文件Manifest当中指定相关指令集。<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.scau.SQLite"></instrumentation>
在Manifest当中配置内容提供者的相关配置,主要包括name,authorities,exported者三者,具体代码如下:
<provider android:name="com.scau.SQLite.provider.PersonProvider" android:authorities="com.scau.person" android:exported="true"></provider>
对以上一段代码的理解
name和其他三个Android的组件一样,配置在其中是让应用获取到这个内容提供者对象。
authorities相当于给这个内容提供者指定一个名字,因为在Android程序当中会有很多个内容提供者,这里指定一个名字是为了区分其他。、
exported是在Android4.0之后才出现的,为了表明这个应用是可以输出的。
内容提供者的Uri匹配器
- *