【发布时间】:2014-06-20 08:24:31
【问题描述】:
我正在关注 Google 员工制作的 this 教程。
如果您查看第三个代码 sn-p,本教程显示了从 SQLiteOpenHelper 类扩展而来的 FeedReaderDbHelper 类。
public class FeedReaderDbHelper extends SQLiteOpenHelper
然后,它展示了如何创建FeedReaderDbHelper 对象的实例,以便使用它来读取和写入数据库。
FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext());
我看到的问题是SQLiteOpenHelper 是一个抽象类。所以每当我在我的自己的程序中执行以下操作时:
MatchEntry.MatchDBHelper dbHelper = new MatchEntry.MatchDBHelper(context);
我收到一个错误:....MatchContract.MatchEntry is not an enclosing class
这是因为SQLiteOpenHelper 是抽象的吗?我设置课程的方式完全相同,并且几乎完全模仿了文档的内容。
更新
这是目前结构的样子:
public class MatchContract {
public MatchContract() {
}
public static abstract class MatchEntry implements BaseColumns {
...
...
...
}
public class MatchDBHelper extends SQLiteOpenHelper {
...
...
...
}
}
将MatchDBHelper 放在MatchContract 类中是否正确?我假设它需要知道SQL_CREATE_TABLE 字符串,否则它不会知道。
【问题讨论】:
-
MatchDBHelper不能是内部类,我想。我也做了那个教程。给你了,看看吧。您将看到合同与 sqlHelper 类分开:github.com/algui91/CursoAndroid/tree/master/Ejemplos/… -
@algui91 - 啊啊好吧。那么我必须为每个条目创建一个
DBHelper吗?例如:StudentDBHelper、ClassDBHelper、CarDBHelper?
标签: android database sqliteopenhelper