我不能为我的生活弄清楚如何通过Android应用程序中的多个活动访问SQLite数据库。我尝试使用应用程序类,但它不起作用。有人可以告诉我一个如何运作的例子吗?我基本上有一个标签栏设置,需要从每个标签访问数据库。
由于
答案 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,并传入您的上下文。