当我决定使用 ORMLite 时,我编写了相当多的代码。
阅读文档后,我发现我需要扩展如下:
MyClass extends OrmLiteBaseActivity<DatabaseHelper>
但我已经用 ListActivity 扩展了它。
是否可以在不扩展 OrmLiteBaseActivity 的情况下做到这一点?
提前Tnx。
扩展不是必需的OrmLiteBaseActivity
。您只需要自己管理更多实用程序功能。
您最好的选择是在您的活动中创建自己DatabaseHelper
的活动并管理有多少用户并在使用完成时将其丢弃。一般来说,这是OrmLiteBaseActivity
提供给您的实用程序。一种为您管理数据库对象的机制。这只是一种方便。
例子:
private static Dao<Agent, Object> agentDao = null;
public void someMethod() {
if(agentDao == null){
helper = (MyDBHelper) OpenHelperManager.getHelper(getContext());
try {
agentDao = helper.getAgentDao();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
我已经实现了一种方法来在 MyDBHelper 类上返回我的 DAO。查看ORMLite Android Javadoc以及更通用的ORMLite Core Javadoc。那里有很多很好的例子。
[@Nick 的回答很好,但我想我会添加更多信息。]
ORMLite 缺少一个OrmLiteBaseListActivity
在 4.10 版中添加的类——很抱歉错过了。OrmLiteBaseTabActivity
同时,您可以通过复制将其扩展的类更改为 的类TabActivity
来轻松创建自己的此类版本ListActivity
。然后更改所有列表活动类以扩展这个新类。4.10 发布后,您可以返回并删除该课程。
例如:
public abstract class OrmLiteBaseListActivity<H extends OrmLiteSqliteOpenHelper>
extends ListActivity {
// insert contents of the OrmLiteBaseTabActivity class here
}