■データベースの利用 SQlite
・少しのデータ→プリファレンス(Preference)
・ちょっと多目のデータ→ローカルファイル
・それ以上→SQlite
・最初にオープン⇒読み取りや書込み⇒最後にクローズ、という手順を踏む
・SQLiteOpenHelper で拡張クラスをつくる
・onCreateメソッド→create tableコマンドでテーブル作成。table名、型、制約を設定
・getWritableDatabase()メソッド→データベースをオープン
・SQLiteDatabase.insert()メソッド→レコードの追加 (第一引数:テーブル名、第三引数:データ)
・SQLiteDatabase.update()メソッド→レコードの更新 (第一引数:テーブル名、第三引数:条件→where句)
・SQLiteDatabase.delete()メソッド→レコードの削除 (第一引数:テーブル名、第三引数:条件→where句)
・SQLiteDatabase.execSQL()メソッド→SQL文をそのまま実行。
レコードの追加、更新、削除や、テーブルの作成、削除。※select文は使えず
・レコードの検索結果はCursorというインスタンスで返される。インスタンスの取得方法は以下2つ
1.SQLiteDatabase.query()メソッド
sdb.query(“第1引数”,“第2引数”,“第3・・・); 引数でorder by句やlimit句を設定。
2.SQLiteDatabase.rawQuery()メソッド
生のクエリを使用
※参考URL
http://www.ipentec.com/document/document.aspx?page=android-use-sqlite-simple-app
■ボタンのイベント処理・・・DBとテキストボックス・ボタンの連携方法
・android:onClick=”onClickButton”→xmlファイルでイベントの設定
・javaファイルで読み込み(R.layout.ファイル名)
・javaファイルでクリックした際のイベントを設定
例)保存orキャンセルのボタン→保存を押下したら保存確認のアラート(はい/いいえ)
swich
case ボタン「保存」(idが1)を押下したとき
アラートダイアログのインスタンスを作成。/new AlertDialog
ボラン「はい」(idがyes)の設定・・・xmlファイルから取得/(R.getstring.指定したstring)
ボタン「はい」を押下したら(onClickListener)保存処理
onSaveInstanceState(Bundle) で保存
ボラン「いいえ」(idがno)の設定・・・xmlファイルから取得/(R.getstring.指定したstring)
ボタン「いいえ」を押下したら(onClickListener)何もせずに戻る
case ボタン「キャンセル」(idが2)を押下したとき
何もせずに戻る
break;
swich終わり
という感じで、次はボタンを押下したときのイベント(保存処理)を細かく読んでメモします。
■入力されたテキストをSQlite保存
EditTextクラスを利用するにはコンストラクタを使ってEditTextクラスのオブジェクトを作成。
・1枚目の画面→保存orキャンセル ボタン。 ここでテキストを入力(EditText)し、保存を押す。
保存するデータを、EditText01から取得(getText())する。
後はinsert文でDBにテキストを保存すれば良い?
※参考URL
http://techbooster.jpn.org/andriod/application/567/
http://d.hatena.ne.jp/hkhumanoid/20090117/1232194093
■外部のデータを利用
※Androidで外部からデータを保存するにはContent Providerを使用するのが基本。
Content Providerは端末内のアプリ専用エリアに作成され、アクセス権限を定義すれば他のアプリからも使用可能。
使用するには設定(以下のタグ)をAndroidManifest.xmlに追加。
http://d.hatena.ne.jp/Korsakov/20101128/1290957083
作りたいものは、フォースクエアみたいなアプリ。
写真を撮ったら、その場で位置情報+つぶやき+写真のログがデータベースに記録されるというもの。
どローカルな観光アプリ「みんなで作る観光MAP」みたいな感じをイメージしていた。
作るまでの流れとしては
1.文字列をDBに保存→半分ぐらいできてない
2.マップを表示して位置情報を取得→できていない
3.写真を撮ってDBに保存→できていない
4.これらを繋げるコード→できていない
今週末(6/19)にあるICT復興会議に、このアプリを出してみたかったけど無理っぽいな・・・
まあ、できるだけ頑張ろう。