3

当我决定使用 ORMLite 时,我编写了相当多的代码。

阅读文档后,我发现我需要扩展如下:

MyClass extends OrmLiteBaseActivity<DatabaseHelper>

但我已经用 ListActivity 扩展了它。

是否可以在不扩展 OrmLiteBaseActivity 的情况下做到这一点?

提前Tnx。

4

2 回答 2

7

扩展不是必需的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。那里有很多很好的例子。

于 2011-01-28T15:50:03.083 回答
1

[@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
}
于 2011-01-28T20:30:10.153 回答