質問
OrmLiteを使用することにしたときに、かなり大量のコードが書かれています。
ドキュメントを読んだ後、私は次のように拡張する必要があることがわかりました。
MyClass extends OrmLiteBaseActivity<DatabaseHelper>
しかし、私はすでにListActivityでそれを拡張しています。
ormlitebaseativityを拡張せずに行うことは可能ですか?
事前に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. 。そこにはたくさんの良い例があります。
他のヒント
@ニックの答えは大丈夫ですが、もっと情報を追加すると思いました。
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
}