其实开这个CSDN这个博客,最主要不是为了什么发表自己的什么技术,想法以及作品的,主要是为了对自己自学的知识做一个总结,然后可以回顾,温习,这样来提升自己在安卓开发的道路上走得更稳,更具有回味性。
多的不说,之前在学校就已经自己自学了一部分的安卓知识,但是用来开发,那肯定是远远不够的。今天主要学的是关于SQLite的存储知识以及ContentProvider数据传递的知识。
这是一个安卓手机提供的轻量存储数据库,用户可以将数据存储入内。
开发关于SQLitedatabase主要是通过继承SQLiteOpenHelper类来进行的,该类中主要包含了2个需要实现的方法,一个是oncreate(SQLitedatabase db){}该方法主要是当该类被实例化后调用getWritableDatabase()方法【注:此方法返回的是SQLitedatabase】的时候,创建一个数据库,并实行oncreate方法中的数据库语句,如:db.excuteSQL(创表语句等)。
该类中本身会具有如下一个构造函数
public dbHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, null, version);
}
其中version对应的参数是用来判断数据库版本的,当版本不一致时,将会执行
此类中的另一个需要实现的方法
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}用来升级。
当SQLiteOpenHelper的子类被实例化后,可以调用以下两个方法
getWritableDatabase() 获得可写的数据库,返回的是SQLitedatabase,并通过此SQLitedatabase进行insert,delete等数据库写入的操作方法。
getReadableDatabase()获得可读的数据库,主要可以用该数据库调用query【查询】的方法进行数据库查询【注:query返回的是Cursor对象】
在此Demo中,用到了一个SImpleCursorAdapter,其中有个方法adapter.changeCursor (c),可以用来改变适配器填充的内容。
其次,在界面中,用到了ListActivity,而在布局文件中,ListView的控件ID应该为android:id=“@android:id/list”
此类主要方法:主要是增删改查的内容,其中比较主要的还是oncreate()方法,
在该方法中要创建数据库以及数据库表等,eg:db=getContext().openOrCreateDatabase();
db.excuteSQL();
等;
若要一个应用程序暴露出去,需要在androidManifest.xml中进行注册provider,同时仍需要对Authories添加一个可以暴露的uri,还需要对export属性经行设置
android:export=“true”,一切设置好了之后,就可以利用getProviderRosver()来进行增删改查的内容。
Demo中遇到的问题:
1.Uri uri=Uri.prase("content://com.jiege.cp");此处的content是小写的,在Demo中我用了Content,导致在打开时Cursor指针错误,即没有读取到之前写入的内容。
2.其次在这两个Demo中都利用到了一个ContentValues这个类,以及其put()方法,用来对数据进行写入。