Androidアプリケーションで複数のアクティビティでSQLite DBにアクセスする方法を理解できません。私はアプリケーションクラスを使ってみましたが動作しません。誰かが私にこれがどのように機能するかの例を教えてもらえますか?私は基本的にタブバーの設定があり、各タブからDBにアクセスする必要があります。アンドロイドアプリケーションを通じてSQLiteデータベースにアクセスするには?
おかげ
Androidアプリケーションで複数のアクティビティでSQLite DBにアクセスする方法を理解できません。私はアプリケーションクラスを使ってみましたが動作しません。誰かが私にこれがどのように機能するかの例を教えてもらえますか?私は基本的にタブバーの設定があり、各タブからDBにアクセスする必要があります。アンドロイドアプリケーションを通じてSQLiteデータベースにアクセスするには?
おかげ
DBクラスをシングルトンにすると、すべてのアクティビティから使用できます。データベースを閉じないでください。アプリケーションプロセスが終了すると自動的に閉じられます。
はたぶんこれはあなたが始めることができます:あなたの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();
}
で
private MessagesDatabaseAdapter mDatabaseAdapter;
...
private void someMethod(Context context) {
mDatabaseAdapter.open();
mDatabaseAdapter.insertMessage(timestamp, number, body);
mDatabaseAdapter.close();
}
をこのtutorialそれはあなたが得ることができます言及まさにではないのですが、かなりいいですそこからの基礎。
Notepad Tutorialをご覧ください。
具体的には、thisページは、作成DBAdapterヘルパークラスを使用する方法について説明します:
NotesDbAdapterのコンストラクタは は、Androidオペレーティングシステムの態様と通信するためにそれを可能にするコンテキストを、取ります。これは、一部の 方法でAndroidシステムに触れる必要があるクラスのための非常に一般的な です。 ActivityクラスはContextクラスを実装しているので、普通は はContextを必要とするときにActivityから渡します。
NotesDbAdapterを任意のアクティビティからインスタンス化して使用することができます。
1回の操作ごとにデータベースを開いたり閉じたりするのは良い考えではありません。 –
これは、この単一の入力方法で一度に1行ずつテーブルを作成するアプリケーションからのサンプルです...私はここで巨大なデータベースを操作していません。 – KDEx
開け閉めは高価な操作なので、繰り返しはしないでください。 –