カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

選択用のダイアログ表示

この記事は最終更新日から1年以上経過しています。

サブメニューやコンテキストメニュー以外で、選択してもらう機能を実装したいときに発見しました。
複数の選択肢を持たせることができるダイアログを実装することができます。

AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setTitle("選択");
final String[] items = { "01", "02", "03"};
ad.setItems(items, new OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        Log.v(TAG, items[which] + "が選択されました。");

        switch(which){
        case 0:
            //01が選択された場合の処理
            break;
        case 1:
            //02が選択された場合の処理
            break;
        case 2:
            //03が選択された場合の処理
            break;
        }
    }
});
ad.create().show();

選択肢をラジオボタンにして1つだけ選択できるようにし、
OKとキャンセルボタンを付けると以下のようになります。

AlertDialog.Builder ad = new AlertDialog.Builder(this);
ad.setTitle("選択");
final String[] items = { "01", "02", "03"};
int defaultChoice = 0; //デフォルトで選択されるアイテムのインデックス
ad.setSingleChoiceItems(items, defaultChoice, new OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        Log.v(TAG, items[which] + "が選択されました。");

        switch(which){
        case 0:
            //01が選択された場合の処理
            break;
        case 1:
            //02が選択された場合の処理
            break;
        case 2:
            //03が選択された場合の処理
            break;
        }
    }
});
ad.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        //肯定ボタンの操作
    }
});
ad.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        //キャンセルボタンの動作
    }
});
ad.create().show();
この記事がお役に立ちましたらシェアお願いします
2,436 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です