如何在Android中导入sqlite db文件?

时间:2011-08-15 17:43:04

标签: android sqlite

在我的应用程序中,我可以将数据库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;

 }
 });
}

但是,我似乎无法在这里找到解决方案。

0 个答案:

没有答案