Как импортировать файл sqlite db в Android? - PullRequest
1 голос
/ 15 августа 2011

В моем приложении я могу экспортировать базу данных базы данных в / 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;

 }
 });
}

Однако я не могукажется, найти решение здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...