默认情况下,我们在警报对话框中获得两个或三个水平对齐的按钮。是否可以在警报对话框中使它们垂直对齐?
当然,您可以使用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();
自从API级别1以来,就有一个setItems()调用来执行此操作。除非您想更改项目的外观,否则没有理由创建自定义对话框。
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();