0


状況:
SQLiteテーブルをXMLファイルにエクスポートしようとしていますが、この回答と、ここから削除された投稿、およびこの質問(明らかに同じ作成者からの最後のリンクの両方:))をフォローしています

DBAdapterを拡張するという名前の別のクラスSQLiteOpenHelper。だから私はこれを持っています:

public DBAdapter(Context ctx) {
  this.context = ctx;
  DBHelper = new DatabaseHelper(context);
}
private static class DatabaseHelper extends SQLiteOpenHelper {
  DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
  }
  /*...*/
  onCreate()
  /*...*/
  onUpgrade()
  /*...*/
}

すでにDBAdapterクラスファイルにあります。どうすればこれを再利用できますか?

また、私は次のように渡してみました:

DataXmlExporter dm = new DataXmlExporter(SQLiteDatabase 
                           Database(getReadableDatabase ()));

しかし、それでもエラーが発生しました。

更新-1:ソリューションを実装するために2番目のリンクを使用しました。

問題: NullPointerExceptionが発生します。オブジェクトを正しく初期化していないためだと思います。
DataXmlExporter / exportDataメソッドを呼び出すときに、パラメーターとして何が提供されますか?:
DataXmlExporter dm = new DataXmlExporter(WHAT_IS_PASSED_HERE?);

ありがとう..

4

3 に答える 3

1

SQLiteDatabaseデータベース(getReadableDatabase())を渡す必要があります。

コンストラクターによる

public DataXmlExporter(final SQLiteDatabase db) {
  this.db = db;
}

コメントによると:渡されたSQLiteDatabaseをXML形式で外部ストレージ(SDカード)にエクスポートできるAndroidDataExporter

于 2013-01-22T10:19:22.323 に答える
1

が必要なようですSQLiteDatabase

たとえば、getReadableDatabase()または で取得できますgetWritableDatabase()

DatabaseAssistantあなたが提供した最初のリンクのように実装した場合、コンストラクターパラメーターとしてSQLiteDatabase...への参照があります。

于 2013-01-22T10:16:09.990 に答える
0

私がしたことは、クラスSQLiteOpenHelper内を拡張して使用することでした。DatabaseAssistant

于 2013-01-22T14:14:37.810 に答える