blog

Androidでデータベースアプリを作成してみましょう。(後編)

2011.08.08

デバイスソリューション部 長野です。

今回は後編となります。
前編はこちらをご覧ください。

4.プログラムを作成

レイアウトが完成したらいよいよプログラムを作成します。

プログラムの流れは、
  ①リソースを割り当てる為の変数を宣言
  ②変数達にコンテキスト上にあるリソースを割り当てる
  ③Listenerを登録して動作をプログラム
色々説明するよりもソースを見た方が理解が早いですよね。下記です。
 

4-1.トップ画面 (Class:ActivityTop)

アプリ起動時の初期画面になります。

●トップ画面でやってる事
・現在月の日記の一覧を表示。
・一覧からタップされたレコードの参照画面に遷移。
・今日の日記を追加ボタンで新規登録画面に遷移。
・先月ボタンで一ヶ月前の一覧を表示。
・翌月ボタンで一ヶ月後の一覧を表示。
・検索文字を入力して検索ボタンで検索文字を含む一覧を表示。


●src/jp.app.nikkibybrightsystem/ActibityTop.java

データベースにアクセスしているのは、DataLoadTaskを使います。AsyncTaskを継承して非同期に動作が行えます。
onPreExecuteにて処理中のダイアログを表示し、doInBackgroundでデータベースに一覧を求めます。onPostExecuteが通知されれば取得完了ということで、ダイアログを消去して一覧を表示しています。
 

4-2.追加画面 (Class:ActivityAdd)

一日に一回の日記の追加画面になります。

●日記登録画面でやってる事
・音声入力の処理。
・入力してる状態で戻ろうとしたら確認画面を起動。
・保存処理(データベースにアクセス)。


●src/jp.app.nikkibybrightsystem/ActibityAdd.java

登録画面で特別な事は音声認識になります。RecognizerIntentクラスの利用です。
ボタンクリックで音声認識のActivityを起動し、onActivityResultに結果が返ってきます。ArrayListの結果文字を連結して日記の本文に設定しています。
 

4-3.参照画面 (Class:ActivityView)

一覧画面から選択されたレコードの参照画面になります。

●参照画面でやってる事
・トップ画面から引き継いだデータを表示。


●src/jp.app.nikkibybrightsystem/ActibityAdd.java

参照画面は引き継いだデータを表示しているだけです。

トップ画面で日記をタップされたら引き継ぐデータを設定します。

次に参照画面でデータを受け取ります。

データを引き継ぐ時はputExtra()だけですが、受け取る時はgetIntExtra()やgetStringExtra(),getBooleanExtra()などのように受け取る型にあわせないといけません。
putExtra()の第1引数にはキー値、第2引数に引き継ぐ値を設定。


 

最後に忘れがちな設定を書いておきます。

  AndroidManifest.xml

です。AndroidManifest.xmlにはPakage名やアプリのVersionなどの定義もあります。
アプリに搭載されているActivityの定義もありますので、Activityを追加したらここに追加する必要があります。
これを追加しないとActivityがプロジェクトで認識されない為に実行時に呼び出した時にエラーになり画面遷移ができません。


●./AndroidManifest.xml

以上で日記アプリの完成となります。
細かい説明をせずにだだだーと書きましたが、プログラム中にもコメントも追記していますのでやりたい事はわかるかと思います。
アプリを作成する時のサンプルコードにでもなれば幸いです。

 

おまけ

●res/drawable-hdpi/icon
●res/drawable-ldpi/icon
●res/drawable-mdpi/icon

ここのフォルダにアイコンとなるデータを入れてコンパイルすると、自分のオリジナルのアイコンで楽しめます。

hdpiには「72×72」の.pngファイルをドラッグ。
ldpiには「36×36」の.pngファイルをドラッグ。
mdpiには「48×48」の.pngファイルをドラッグ。
ファイル名をiconに変更にしてデフォルトのiconを上書きしちゃいます。

コンパイルすると、見事に自作の絵がアイコンになっています。

また、2回にわたりご紹介しました内容のプロジェクトファイルを用意しましたので、こちらからダウンロードしてご利用ください。


●InputMethodManager
http://developer.android.com/intl/ja/reference/android/view/inputmethod/InputMethodManager.html

●Toast
http://developer.android.com/intl/ja/reference/android/widget/Toast.html

●ProgressDialog
http://developer.android.com/intl/ja/reference/android/app/ProgressDialog.html

●AsyncTask
http://developer.android.com/intl/ja/reference/android/os/AsyncTask.html

●RecognizerIntent
http://developer.android.com/intl/ja/reference/android/speech/RecognizerIntent.html