您的位置:首页 > 移动开发 > Android开发

Android中的对话框

2016-06-16 13:42 225 查看
Android中一共有两种常用对话框:

AlertDialog:功能最强大的对话框

ProgressDialog:进度条对话框,一般在执行异步任务时使用,是AlertDialog的子类

Android内置的对话框有四种样式:

1. 带消息、带N个按钮的提示对话框

2. 带列表、带N个按钮的提示对话框

3. 带多个单选列表项、带N个按钮的提示对话框

4. 带多个多选列表项、带N个按钮的提示对话框

AlertDialog创建对话框的一般步骤为:

创建一个AlertDialog.Builder对象,AlertDialog是采用建造者模式设计的,为此我们需要先创建一个AlertDialog的建造者

调用AlertDialog.Builder对象的方法为其设置图标、标题、内容和按钮等

调用AlertDialog.Builder对象的的create方法创建一个AlertDialog对象

调用AlertDialog对象的show方法显示对话框

在适当的条件下调用AlertDialog对象的dismiss方法取消对话框

为对话框设置标题和图标:

builder.setIcon(icon);

builder.setTitle(title);

创建带消息、带两个个按钮的提示对话框:

builder.setMessage(message);

builder.setPositiveButton(text, listener);

builder.setNegativeButton(text, listener);

buidler还可以使用下面的方法创建一个装饰性按钮:

builder.setNeutralButton(text, listener):创建普通列表对话框

带列表、带N个按钮的提示对话框:

builder.setItems(items, listener):创建普通列表对话框
builder.setSingleChoiceItems(items, checkedItem, listener): 创建单选列表对话框
builder.setMultiChoiceItems(items, checkedItems, listener):创建多选列表对话框


使用自定义的对话框:

一般系统默认的对话框的样式和我们的app的设计风格相差很远,使用原生对话框会让我们的应用看起来很丑,所以大多数时候我们需要自定义我们的对话款的界面,我看见多很多的方法,包括去修改AlertDialog的源码等方法,我一般会使用一个比较简单的方法,其步骤如下:

自定义一个对话框的界面,包括对话框的标题等

创建一个AlertDialog对象并直接调用show方法将其显示出,注意不要做其它的设置

调用getWindow()方法得到对话框的窗口对象window,再调用window的setContentView方法为窗口设置我们的自定义对象

其完整代码为:

AlertDialog dialog = new  AlertDialog.Builder(context).create();
//不要做过多设置,直接调用show方法
dialog.show();
Window window = dialog.getWindow();
//自定义一个方法得到对话框的自定义布局
View dialogView = getDlgView();
//为窗口对象设置布局
window.setContentView(dialogView);
//此外还可以设置window的标志,如window无标题
window.addFlags(Window.FEATURE_NO_TITLE);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 对话框