В моем приложении я могу экспортировать базу данных базы данных в / 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
On close()
.
И я получаю
The method `getWritableDatabase()` is undefined for the type Prefs
On getWritableDatabase().close();
Я используюэта функция в моем Preference-классе называется "Prefs".И я думаю, что мне нужно получить некоторые функции из моего dbadapter, называемого NotesDbAdapter.
Однако, он не будет работать, например, NotesDbAdapter.getWritableDatabase.close();
.
Редактировать: я помещаю его вNotesDbAdapter в SQLiteOpenHelper {}.Это устранило все ошибки ...
Теперь к следующей проблеме, я хочу вызвать эту функцию, когда пользователь нажимает пользовательскую настройку.
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;
}
});
}
Однако я не могукажется, найти решение здесь.