41

我通过扩展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);
}

这里一切正常。但是如果你专注于参数传入 super super(context, DATABASE_NAME, null, SCHEMA_VERSION); . 我无法理解 null 参数。我知道在这里我们必须传递SQLiteDatabase.CursorFactory对象。

但是怎么办??还有那有什么用??

4

1 回答 1

57

传递 null 的原因是您想要标准SQLiteCursor行为。如果你想实现 aspecialized Cursor你可以通过扩展来获得它Cursor class(这是为了对查询结果进行额外的操作)。在这些情况下,您可以使用CursorFactory该类返回您的 Cursor 实现的实例。这是该文件

SQLiteDatabase.CursorFactory 文档

用于在调用查询时允许返回 Cursor 的子类。

于 2012-07-25T05:42:43.803 回答