0


情况:
我正在尝试将我的 SQLite 表导出到 XML 文件并遵循这个答案以及从这里删除的帖子和这个问题(显然两个最后一个链接来自同一作者:))

更新 2:我已经有另一个名为的类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 ()));

但还是报错。

Update-1:我使用第二个链接来实现我的解决方案。

问题:我得到一个空指针异常;我猜是因为我没有正确初始化我的对象。
在调用 DataXmlExporter / exportData 方法时,作为参数提供了什么?:
DataXmlExporter dm = new DataXmlExporter(WHAT_IS_PASSED_HERE?);

谢谢。。

4

3 回答 3

1

您需要传递 SQLiteDatabase 数据库( getReadableDatabase () ):

根据构造函数

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

根据评论:Android DataExporter 允许传入的 SQLiteDatabase 以 XML 格式导出到外部存储(SD 卡)

于 2013-01-22T10:19:22.323 回答
1

看起来你需要一个SQLiteDatabase.

例如,你可以得到一个 withgetReadableDatabase()或 with getWritableDatabase()

如果您DatabaseAssistant像在您提供的第一个链接中那样实现,则作为构造函数参数,您可以引用SQLiteDatabase....

于 2013-01-22T10:16:09.990 回答
0

我所做的是扩展类SQLiteOpenHelper内部DatabaseAssistant并使用它。

于 2013-01-22T14:14:37.810 回答