一、AlertDialog简介

AlertDialog的构造方法被声明为protected,因此不能直接使用new关键字来创建AlertDialog类的对象实例。要创建AlertDialog对话框,需要使用Builder类,该类是AlertDialog类中定义的一个内嵌类。因此,首先需要创建AlertDialog.Builder类的对象实例,然后再调用show()方法来显示对话框。以下是一个示例:

```java

AlertDialog.Builder builder = new Builder(this);

builder.create().show();

```

二、属性介绍

1. AlertDialog.Builder属性

- setTitle: 为对话框设置标题;

- setIcon: 为对话框设置图标;

- setMessage: 为对话框设置内容;

- setView: 给对话框设置自定义样式;

- setItems: 设置对话框要显示的一个list,一般用于显示几个命令时;

- setMultiChoiceItems: 用来设置对话框显示一系列的复选框;

- setNeutralButton: 响应中立行为的点击;

- setPositiveButton: 响应Yes/Ok的点击;

- setNegativeButton: 响应No/Cancel的点击;

- create: 创建对话框;

- show: 显示对话框。

2. ProgressDialog属性

- setProgressStyle: 设置进度条风格,风格为圆形,旋转的;

- setTitle: 设置ProgressDialog标题;

- setMessage: 设置ProgressDialog提示信息;

- setIcon: 设置ProgressDialog标题图标;

- setIndeterminate: 设置ProgressDialog的进度条是否不明确;

- setCancelable: 设置ProgressDialog是否可以按返回键取消;

- setButton: 设置ProgressDialog的一个Button(需要监听Button事件);

- show: 显示ProgressDialog。

对话框是一种常用的用户界面元素,可以提供各种类型和样式的对话框以满足不同的需求。以下是一些常见类型的对话框及其特点:

1. 带按钮的对话框:这种对话框通常包含一个或多个按钮,用户可以通过点击按钮来执行相应的操作。例如,确认操作、取消操作等。

2. 简单列表的对话框:这种对话框以水平滚动条的形式展示一系列选项,用户可以从中选择一个或多个选项。例如,选择器对话框、下拉列表等。

3. 单选列表的对话框:这种对话框只包含一组单选按钮,用户只能从中选择一个选项。例如,设置对话框、选项卡切换等。

4. 多选列表的对话框:这种对话框包含一组多选按钮,用户可以选择一个或多个选项。例如,文件管理器中的文件夹选项、批量重命名等。

5. 水平进度或圆形对话框(默认是圆形):这种对话框以水平滚动条的形式展示一个进度条,用于表示任务的完成进度。同时,也可以将对话框设置为圆形,使其看起来更加简洁和美观。

6. 悬浮对话框:这种对话框会始终显示在屏幕上方,即使用户正在进行其他操作。例如,系统警告、提示信息等。

7. 触摸任何位置都可以关闭的对话框:这种对话框具有自适应性,用户只需轻触屏幕上的任意位置,即可关闭对话框。这对于需要短暂显示的信息非常有用,避免了用户需要手动关闭的麻烦。

此外,还可以根据实际需求自定义对话框的内容和样式。例如,可以在自定义登录示例中调整输入框的大小、颜色等属性,以适应不同的应用场景。自定义对话框可以根据具体需求进行设计和实现,为用户提供更加便捷和个性化的使用体验。

以下是重构后的代码:

```java

public class MainActivity extends AppCompatActivity {

private AlertDialog.Builder mSimpleDialogBuilder;

private AlertDialog.Builder mSingleChoiceDialogBuilder;

private AlertDialog.Builder mMultiChoiceDialogBuilder;

private AlertDialog.Builder mListDialogBuilder;

private AlertDialog.Builder mCustomDialogBuilder;

private ProgressDialog mProgressDialog;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initViews();

initListeners();

}

private void initViews() {

// ...初始化视图的代码...

}

private void initListeners() {

Button btn1 = (Button) findViewById(R.id.dialg_demo_btn01);

btn1.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub

new AlertDialog.Builder(MainActivity.this).setTitle("简单提示对话框").setMessage("这是提示信息")

.show();

}

});

// ...其他按钮的监听器代码...

}

}

```