使用AlertDialog.Builder创建Dialog出现在屏幕中央怎么设置
时间: 2023-08-14 16:05:03 浏览: 48
要想让AlertDialog在屏幕中央显示,可以在创建AlertDialog时通过设置它的Gravity属性来实现。以下是一个示例代码:
```
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");
builder.setMessage("Message");
AlertDialog dialog = builder.create();
Window window = dialog.getWindow();
if (window != null) {
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
layoutParams.copyFrom(dialog.getWindow().getAttributes());
layoutParams.gravity = Gravity.CENTER;
window.setAttributes(layoutParams);
}
dialog.show();
```
在这个示例代码中,我们通过获取AlertDialog的Window对象,并将其LayoutParams的gravity属性设置为Gravity.CENTER来让AlertDialog在屏幕中央显示。需要注意的是,必须在AlertDialog显示之前设置Window的LayoutParams,否则设置将不会生效。
相关问题
AlertDialog.Builder dialog = null;
这段代码创建了一个用于构建对话框的AlertDialog.Builder对象,但是该对象还未被实例化,需要进一步的代码来实例化并设置对话框的属性。例如,可以使用下面的代码来创建一个简单的对话框:
```
dialog = new AlertDialog.Builder(context);
dialog.setTitle("提示");
dialog.setMessage("确定要删除吗?");
dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 点击确定按钮后执行的操作
}
});
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 点击取消按钮后执行的操作
}
});
dialog.show();
```
这个对话框会显示一个标题为“提示”的对话框,内容为“确定要删除吗?”,并且有两个按钮:“确定”和“取消”。当用户点击确定或取消按钮时,对应的OnClickListener对象中的onClick方法会被调用。
在使用alertdialog.builder类创建多选对话框时,使用的关键方法是什么
在使用 AlertDialog.Builder 类创建多选对话框时,使用的关键方法是 setMultiChoiceItems() 方法。该方法用于设置多选对话框的选项列表和选中状态。它需要传入一个数组表示选项列表,一个布尔型数组表示选中状态,以及一个 DialogInterface.OnMultiChoiceClickListener 接口用于监听选项的点击事件。例如:
```
String[] options = {"Option 1", "Option 2", "Option 3"};
boolean[] checked = {false, true, false};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMultiChoiceItems(options, checked, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
// 处理选项的点击事件
}
});
AlertDialog dialog = builder.create();
dialog.show();
```