チェックボックス表示ダイアログ (AlertDialog)

アラートダイアログ (AlertDialog) クラスを用いて、チェックボックスを表示するダイアログを表示する方法を説明します。

ソースの定義

AlertDialog クラスを用いてチェックボックスを表示するダイアログを生成するには、ソースファイルに以下のように記述します。

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;

public class AlertDlgSampleActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // チェック表示用のアラートダイアログ
        final CharSequence[] chkItems = {"item1", "item2", "item3"};
        final boolean[] chkSts = {true, false, false};
        AlertDialog.Builder checkDlg = new AlertDialog.Builder(this);
        checkDlg.setTitle("タイトル");
        checkDlg.setMultiChoiceItems(
            chkItems,
            chkSts,
            new DialogInterface.OnMultiChoiceClickListener() {
                public void onClick(DialogInterface dialog,
                                    int which, boolean flag) {
                    // 項目選択時の処理
                    // i は、選択されたアイテムのインデックス
                    // flag は、チェック状態
                }
            });
        checkDlg.setPositiveButton(
            "OK",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // OK ボタンクリック処理
                }
            });

        // 表示
        checkDlg.create().show();
    }
}

※ 設定する文字列は、本来 string.xml に定義すべきですが、説明を簡単にするために直接記述しています。


各メソッドの意味は以下の通りです。

メソッド 説明
setTitle ダイアログのタイトルバーに表示する文字を設定します。
setMultiChoiceItems ダイアログに表示するアイテムと各チェックボックスの初期状態、アイテム選択時のリスナを設定します。
setPositiveButton OK ボタンとクリック時のリスナを設定します。


ダイアログを表示するには、create メソッドで AlertDialog クラスを生成し、show メソッドで表示します。