我们可以在Android警报对话框中使用垂直按钮吗?

时间:2012-03-09 21:59:55

标签: android button alertdialog

默认情况下,我们会在警告对话框中获得两个或三个水平对齐的按钮。是否可以在警报对话框中将它们垂直对齐?

2 个答案:

答案 0 :(得分:8)

当然,您可以使用Dialog.setContentView()将对话框的内容设置为任意布局。

Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.yourLayoutId);
dialog.show();

使用包含所需按钮的Vertical LinearLayout创建一个布局文件,并在对话框中调用setContentView(),并传递布局文件的名称。

如果您对AlertDialog感到厌烦,可以使用builder.setView()

执行类似操作
LayoutInflater inflater = (LayoutInflater) 
        getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.yourLayoutId,
        (ViewGroup) findViewById(R.id.yourLayoutRoot));
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setView(layout);
AlertDialog alertDialog = builder.create();
alertDialog.show();

答案 1 :(得分:6)

有一个setItems()调用,它从API级别1开始执行此操作。没有理由创建自定义对话框,除非您想要更改项目的外观。

CharSequence[] items =  {"Foo", "Bar", "FooBar"};
new AlertDialog.Builder(activity)
.setTitle("Choose a widget")
.setItems(items, new DialogInterface.OnClickListener()
{
     @Override
     public void onClick(DialogInterface dialog, int which)
     {
         switch(which)
         {
             case FOO:
             // foo case
             break;

             ....
         }
     }
}
.create().show();