我通过扩展SQLiteOpenHelper
类创建了一个数据库。它也创造了。这是我粘贴的代码
public Imagehelper(Context context) {
super(context, DATABASE_NAME, null, SCHEMA_VERSION);
cntxt = context;
filename = Environment.getExternalStorageDirectory();
DATABASE_FILE_PATH_EXTERNAL = filename.getAbsolutePath()+File.separator+DATABASE_NAME;
Log.i("Log", ":"+DATABASE_FILE_PATH_EXTERNAL);
}
这里一切正常。 但是如果你专注于参数传递超级超级(上下文,DATABASE_NAME,null,SCHEMA_VERSION); 。我无法理解null参数。我知道我们必须传递 SQLiteDatabase.CursorFactory 对象。
但是怎么样?那有什么用?
答案 0 :(得分:52)
传递null的原因是您需要标准的SQLiteCursor
行为。如果要实现specialized Cursor
,可以通过扩展Cursor class
来获取它(这是为了对查询结果执行其他操作)。在这些情况下,您可以使用CursorFactory
类返回Cursor实现的实例。这是
SQLiteDatabase.CursorFactory DOC
用于在调用查询时允许返回Cursor的子类。