如何在整个Android应用程序中访问SQLite数据库?

时间:2012-05-10 03:28:23

标签: android sqlite

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

由于

3 个答案:

答案 0 :(得分: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();
}

这个tutorial非常好,虽然它并不完全是你所提到的,你可以从中得到基础知识。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

请参阅Notepad Tutorial

具体来说,this页面告诉您使用您创建的DBAdapter助手类:

  

NotesDbAdapter的构造函数采用Context,允许它   与Android操作系统的各个方面进行沟通。这是   在一些需要触摸Android系统的类中非常常见   办法。 Activity类实现Context类,通常是你   当需要一个Context时,它会从你的Activity传递它。

您可以在任何活动中实例化和使用NotesDbAdapter,并传入您的上下文。