2011年8月7日日曜日

Androidリスト形式の表示

さてさて、今回はAndroidでのリスト形式の表示について勉強したいと思います。

画面上で言うと、今まで自分が入力してきた費目を
2回目以降は選べるようにしたいかなぁと思うので、

品目履歴ボタンを押した時に出るようにしたいと思います。

そこで、今まで通りGoogle先生で検索してみたところ、

Monmonkeyの開発スペース ~ Android 開発 技術情報サイト ~ 
- Androidにてリスト選択ダイアログを表示する[サンプルソース付き]

という感じのうってつけのサイトを見つけることができました。
※まあ、『android リスト形式』でググった時の1件目なんですけどね。

ということで、さっそくサンプルにのっとってロジックを組んでみたいと思います。

まずは、画面上のボタンにイベントを作ってみました。
上記の赤いボタンに対して、


/**
 * クリックイベント
 * @param クリックイベント対象コントロール
 */
public void onClick(View v) {

    final String ITEM_LIST[] = new String[] {
            "data 1",
            "data 2",
            "data 3",
            "data 4",
            "data 5" };

    // 処理:メッセージダイアログの表示
    AlertDialog.Builder adBuilder = new AlertDialog.Builder(BookAllowance.this);
    adBuilder.setTitle("費目履歴");
    adBuilder.setItems(ITEM_LIST, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {

            // ここに値を取得した場合の処理を記述する
            // 費目エディットテキストの取得
            EditText expenseItemTxt = (EditText)findViewById(R.id.expenseItemTxt);
            // 選択値の設定
            expenseItemTxt.setText( ITEM_LIST[which]);

        }
    })
    .show();

}

という感じのロジックを組んでみました。
ほとんどサンプルと同様になりますね。

そこで実行して、『費目履歴』ボタンをクリックすると、、
といった感じの一覧が表示されて、一覧の中から、選択をすると、
といった感じに反映されることが確認できました。

なるほど、AlertDialog.Builderクラスは、戻り値を返却してどうこうする、
という形での処理にはならずに、実行した場合の処理を
そのダイアログ内分のOnClickに記述することによって、
動作をするという動きになるみたいですね。

ただし、現状のままだと、単純に固定値が表示されているだけになっているので、
実際に私が使う形にするには、OnClickの際に先週まで対応していた
DBアクセスの処理を組むことになりそうですね。

最後に、このAlertDialog.Builderについてですが、
Android で再開する Java プログラミング(14) - ダイアログを制するものがAndroidを制する!
こちらのサイトを見ていただくとよくわかると思うのですが、

色々なバリエーションのリストを作成することができそうですね。
これは今後重宝するかもしれません。

今回は、ここまでとしたいと思います。

ではでは。

0 件のコメント:

コメントを投稿