Categories
SugiBlog ホームページ制作・システム開発

選択用のダイアログ表示

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

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();
1,096 views

コメントを残す

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

*