默认情况下,我们会在警告对话框中获得两个或三个水平对齐的按钮。是否可以在警报对话框中将它们垂直对齐?
答案 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();