0

アプリケーションの画像に関連するすべてを処理するクラスを作成したいと思います。

その作業のほとんどはデータベースで行われるため、これを行うためにSQLiteOpenHelperを拡張することは理にかなっています。

私のメソッドの1つは、いくつかの高レベルのレイアウトに組み込むことができるViewGroupオブジェクトを返します。このViewGroupには、画像のグループと、新しい画像を追加するためのボタンが含まれています。

私の問題は、 startActivityForResult()アクションでボタンクリックを処理したいときに発生します。これはActivityクラスの一部であり、SQLiteOpenHelperクラスでは使用できません。

私はこれに間違って近づいていますか? または、クラス内からstartActivityForResult()(およびonActivityResult())にアクセスする方法はありますか?

4

4 に答える 4

1

これを行うために SQLiteOpenHelper を拡張します

そのクラスは、データベース ファイルを開く(そして必要なテーブルを作成する) だけで、それ以上のことはしません。open[ing]Helper クラスを使用してデータベースを開き、データベースですべての挿入/更新を行う別のデータベース処理クラスを作成する必要があります。

私はこれに間違って近づいていますか?

イモ はい。ユーザーイベントロジックはアクティビティの責任であるため、そこにあるか、すべてを委任するクラスにある必要があります。

データベース機能はそこから使用する必要があります-せいぜい非同期で。

于 2012-04-18T15:22:56.090 に答える
0

ブレントが言っgetParent()たように、パラメーターとしてメソッドに渡します。

于 2013-05-17T03:27:55.567 に答える
0

これは、アクティビティをパラメーターとしてクラスに渡し、次を使用することで機能するようです。

myActivity.startActivityForResult(...

于 2012-04-20T19:28:16.243 に答える
0

SQLiteOpenHelper の代わりにアクティビティを拡張し、別のクラスに MyDatabase が SQLiteOpenHelper を拡張するように分割し、このクラスにすべてのデータベースのものを持ち、データベース通信のためにアクティビティでこれのオブジェクトを作成することをお勧めします。変更を加えます。

于 2013-05-17T06:30:13.657 に答える