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と、より一般的なORMLiteCoreJavadocをご覧ください。そこには良い例がたくさんあります。

于 2011-01-28T15:50:03.083 に答える
1

[ @Nick の回答は問題ありませんが、さらに情報を追加すると思いました。]

ORMLite にはOrmLiteBaseListActivity、バージョン 4.10 で追加されたクラスがありません。欠落していて申し訳ありません。それまでの間、このクラスの独自のバージョンを簡単に作成できます。クラスをコピーしてOrmLiteBaseTabActivity、拡張元のクラスを に変更TabActivityListActivityます。次に、すべてのリスト アクティビティ クラスを変更して、この新しいクラスを拡張します。4.10 がリリースされたら、戻ってクラスを削除できます。

例えば:

public abstract class OrmLiteBaseListActivity<H extends OrmLiteSqliteOpenHelper>
    extends ListActivity {
    // insert contents of the OrmLiteBaseTabActivity class here
}
于 2011-01-28T20:30:10.153 に答える