0

我一生都无法弄清楚如何通过 Android 应用程序中的多个活动访问 SQLite DB。我尝试使用应用程序类,但它不起作用。有人可以向我展示一个如何工作的例子吗?我基本上有一个标签栏设置,需要从每个标签访问数据库。

谢谢

4

3 回答 3

0

也许这可以让你开始:

private MessagesDatabaseAdapter mDatabaseAdapter;
...
private void someMethod(Context context) {
mDatabaseAdapter.open();
mDatabaseAdapter.insertMessage(timestamp, number, body);
mDatabaseAdapter.close();
}

在你的 DBClass

            /*Inserts a message into the db */
    public void insertMessage(long timestamp, String number, String body) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_TIMESTAMP, timestamp);
    initialValues.put(KEY_NUMBER, number);
    initialValues.put(KEY_BODY, body);
    db.insert(Constants.DATABASES_TABLE_MESSAGES, null, initialValues);
}

        /* opens the database */
public MessagesDatabaseAdapter open() throws SQLException {
    db = DBHelper.getWritableDatabase();
    return this;
}

/* closes the database */
public void close() {
    DBHelper.close();
}

这个教程非常好,虽然它不是你提到的你可以从中获得基础知识。

于 2012-05-10T03:37:48.130 回答
0

使您的 DB 类成为单例,您将能够在所有活动中使用它。不要关闭数据库,app进程结束时会自动关闭。

于 2012-05-10T03:41:22.670 回答
0

请参阅记事本教程

具体来说,这个页面告诉您如何使用您创建的 DBAdapter 帮助器类:

NotesDbAdapter 的构造函数采用 Context,它允许它与 Android 操作系统的各个方面进行通信。这对于需要以某种方式接触 Android 系统的类来说是很常见的。Activity 类实现了 Context 类,所以通常在需要 Context 时,您只需从 Activity 传递它。

您可以从任何 Activity 实例化和使用 NotesDbAdapter,并传入您的上下文。

于 2012-05-10T03:41:49.287 回答