带选择器的AlertDialog

时间:2011-12-22 14:30:53

标签: android android-alertdialog android-dialog

我正在尝试使用看起来完全像这样的选择器来执行Dialog:

AlertDialog with selector

我尝试过使用一个包含ListView的AlertDialog,但这会在ListView和底部灰色区域之间产生一个丑陋的黑色边框。我可以使用普通的Dialog,但我不想手动构建底部灰色区域。

我知道我可以将AlertDialog子类化,但是我还需要对Builder进行子类化,并且最终会为这么小的细节提供大量代码。这样做有什么好办法吗?

干杯,

2 个答案:

答案 0 :(得分:37)

使用警告对话框构建器,它有选项。简短的例子:

AlertDialog.Builder adb = new AlertDialog.Builder(this);
CharSequence items[] = new CharSequence[] {"First", "Second", "Third"};
adb.setSingleChoiceItems(items, 0, new OnClickListener() {

        @Override
        public void onClick(DialogInterface d, int n) {
            // ...
        }

});
adb.setNegativeButton("Cancel", null);
adb.setTitle("Which one?");
adb.show();

请参阅dialogs doc部分添加列表

答案 1 :(得分:4)

您应使用以下代码选择单个项目。这是工作代码

CharSequence colors[] = new CharSequence[]{"View PDF", "Reduce Size", "Delete PDF", "Share PDF"};

            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Select Option");
            builder.setItems(colors, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Log.e("value is", "" + which);
                    switch (which) {
                        case 0:
                            break;
                        case 1:
                            break;
                        case 2:
                            break;
                        case 3:
                            break;
                    }
                }
            });
            builder.show();