在我的应用程序中,我可以将数据库db导出到/ Android / data ....,现在我要反转它,我想导入它。
public boolean importDatabase() throws IOException {
close();
// Close the SQLiteOpenHelper so it will commit the created empty
// database to internal storage.
File newDb = new File(Environment.getExternalStorageDirectory(), "/Android/data/com.dreamhawk.ea/files/");
// File newDb = new File(dbPath);
File oldDb = new File(NotesDbAdapter.DB_FILEPATH);
if (newDb.exists()) {
Prefs.copyFile(newDb, oldDb);
// Access the copied database so SQLiteHelper will cache it and mark
// it as created.
getWritableDatabase().close();
return true;
}
return false;
}
这是我到目前为止所提出的。但是,我得到了一个
The method `close()` is undefined for the type Prefs
在close()
。
我得到了
The method `getWritableDatabase()` is undefined for the type Prefs
在getWritableDatabase().close();
我在名为“Prefs”的Preference类中使用此函数。 我想我需要从我的dbadapter中获取一些名为NotesDbAdapter的函数。
然而,它无法使用,例如NotesDbAdapter.getWritableDatabase.close();
。
编辑:我把它放在SQLiteOpenHelper {}中的NotesDbAdapter中。 这删除了所有错误......
现在到下一个问题,我想在用户按下自定义首选项时调用此函数。
Preference restoreToDb = (Preference) findPreference("restoreFromSd");
restoreToDb.setOnPreferenceClickListener(new OnPreferenceClickListener() {
File dbPath = new File(Environment.getExternalStorageDirectory(), "/Android/data/com.dreamhawk.ea/files/");
// String dbPath = "/Android/data/com.dreamhawk.ea/files/";
public boolean onPreferenceClick(Preference arg0) {
//NotesDbAdapter.importDatabase(); <-- help here?
return true;
}
});
}
但是,我似乎无法在这里找到解决方案。