最新の記事アプリケーションアクティビティ、インテント、サービスについてデバイスAndroidでのデバイス制御について。地磁気センサ、加速度センサなどマルチメディアグラフィックス、音楽や動画再生などマルチメディア処理についてユーザインターフェースAndroidのユーザインターフェイスについて、またユーザインターフェイスを提供するコンポーネントの話題について。リソースAndroidでのアイコン、画像、文字列、ローカライゼーションなどHacksマッシュアップ開発環境Androidの開発環境など。コメントはまだありませんAndroid開発では、データを保存する方法に『Preferenceを利用する方法』『ファイル出力する方法』『SQLiteを利用する方法』があります。本エントリーでは、SQLiteを利用する方法を、以下のサンプルを用いて紹介していきます。■入力画面EditTextに入力したデータを『Writeボタン押下』のタイミングで保存しています。『Showボタン押下』にて、入力データを表示する画面に遷移します。■データの保存データベースのインスタンス(SQLiteDatabaseクラス)を取得し、SQLiteDatabaseクラスのinsertメソッドを呼び出すことでSQLiteに保存することができます。■出力画面データを保存した際にToastにて表示する数値を入力することで、入力データを表示します。保存の際の数値を入力し入力データを削除することもできます。■データの検索SQLiteに保存したデータの検索は、SQLiteDatabaseクラスのqueryメソッドを利用します。検索結果はリスト化されたデータを指し示す、Cursorクラスのインスタンスとして取得でき、Cursorを移動することでデータを取り出す事ができます。■データの削除SQLiteに保存したデータの削除は、SQLiteDatabaseクラスのdeleteメソッドを利用します。紹介する内容は、以下表の内容になります。/]それでは続きをどうぞ。○データベースを開くためのHelperクラスを作成するAndroidには、SQLiteDatabaseを簡単に管理するためのHelperクラスであるSQLiteOpenHelperクラスが準備されています。SQLiteOpenHelperクラスにはonCreateメソッドとonUpgradeメソッドという2つのabstractメソッドがあり(表1)、これらを使用することでデータベースの管理を簡易に行う事が可能になります。以下のようにSQLiteOpenHelperクラスを継承したMySQLiteOpenHelperクラスを作成しています。25行目:SQLiteDatabaseクラスのexecSQLメソッドを利用することで、SQL文を実行することができます。データベース内にテーブルを作成する際には、以下のように指定します。新規作成されたDBのインスタンスが付与されるので、テーブルを作成する。今回バージョンは1固定のため、処理は行わない。{}}SQLiteOpenHelperクラスのgetWritableDatabaseメソッドを呼び出す事で、SQLiteDatabaseクラスのインスタンスを取得します。取得したインスタンスより、SQLiteDatabaseクラスのメソッドを利用し、データベースを制御していきます。}SQL文について本節では、少し本題から逸れて、簡単なSQL文について紹介していきます。紹介するSQL文はサンプルでも使用しているCREATE文と、非常に基本的な構文であるSELECT文についてです。CREATE文はテーブルを作成する場合に使用します。テーブル内にフィールドを複数持つ場合には、小括弧を使用し、各パラメータを設定します。SELECT文は登録済みのデータから特定データを検索する場合に使用します。WHERE句等と組み合わせることで、強力な検索が可能となります。/]サンプルでのCREATE文のパラメータの指定は、以下表の通りになります。/]上記表と以下CREATE文を見比べ、構文のイメージをつかみましょう。);○データをSQLiteに登録するSQLiteにデータを保存する際には、表2で纏めたSQLiteDatabaseクラスのinsertメソッドを利用します。Boolean型が指定できるサンプルでは、EditTextに入力した文字列をWriteボタンが押下された時にデータベースへ保存します。そのため、onClickメソッドの中でContentValuesクラスのputメソッドの処理を行っています。○データをSQLiteから検索し取得するSQLiteDatabaseクラスのexecSQLメソッドを紹介しましたが、execSQLメソッドではSELECT文を実行することができません。検索を実行する場合には、SQLiteDatabaseクラスqueryメソッドを利用することになります。1.SQLiteDatabaseクラスqueryメソッドからCursorクラスのインスタンスを取得する2.取得したカーソルをCorsorクラスのmoveToFirstメソッドを利用し移動します。3.現在カーソルが指しているテーブルの情報を、CorsorクラスのgetStringメソッドを利用し取得する。queryメソッドは引数に検索指定を入力するのに対し、rawQueryメソッドにはSELECT文のSQL文を入力することができます。煩雑な検索を行う際や、SQL文になれている場合においてはrawQueryメソッドを利用すると簡易に検索を実行することができます。rawQueryメソッドを利用した場合の使用方法も、コメントアウトしソースコード内に書き込んでいます。ソースコード内5〜8行目において、queryメソッドを呼び出しています。/]この検索文をSQL文にて書き表すと以下になります。‘_id=入力値’;また、19行目20行目においてCursorクラスのgetStringメソッドを呼び出しています。getStringメソッドにはカラムの番号を指定する必要がありますが(0オリジン)、CursorクラスのgetCulumnIndexクラスを使用することでカラム番号を取得することが出来ます。WHERE句を使用するときに指定する。検索結果が無いのでTextViewをクリアするshowField.setText(null);}○データをSQLiteから削除するデータを削除する際には、SQLiteDatabaseクラスdeleteメソッドを利用します。/]サンプルでは以下ソースコードにおいて、削除の処理を行っています。});以上ながながとお疲れさまでした。2.0(β)に対応した解説書です。TechBooster.TechBoosterについて。