Android 各种类型的对话框教程详解

转载请标明出处: http://blog.csdn.net/airsaid/article/details/51155994
本文出自:周游的博客

前言

Android本身提供了丰富的对话框支持,常见有如下四种常用的对话框:
* AlertDialog:最常用、功能最丰富应用最广的对话框。
* ProgressDialog:进度条对话框,这个对话框只是对进度条的一个包装。
* DatePickerDialog:日期选择对话框,这个Dialog只是对DatePicker的包装。
* TimePickerDialog:时间选择对话框,同上。

其中,ProgressDialog、DatePickerDialog、TimePickerDialog都是继承自AlertDialog。

开发环境

  • IDE版本:Android Studio2.0
  • 物理机版本:Win7旗舰版(64位)

AlertDialog的使用

AlertDialog的功能十分强大,它可以生成各种各样的Dialog,下面具体讲解下使用。
一般我们创建一个AlertDialog需要如下几步:
* 1,创建AlertDialog.Builder对象
* 2,调用AlertDialog.Builder的setTitle()或者setCustomTitle()方法设置标题
* 3,调用AlertDialog.Builder的setIcon()方法设置图标
* 4,调用AlertDialog.Builder的相关设置方法设置对话框内容
* 5,调用AlertDialog.Builder的setPositiveButtom()、setNegativeButtom()或者setNeutralButtom()方法给Dialog添加按钮
* 6,调用AlertDialog.Builder的create()方法创建AlertDialog对象,再调用AlertDialog.Builder的show()方法显示Dialog

6步中,可以根据具体Dialog的样式灵活改变,其中,第4步最为灵活,AlertDialog允许创建各种内容的对话框,归纳起来,有如下几种:
* 1,setMessage():设置对话框的内容为简单文本。
* 2,setItems():设置对话框的内容为简单列表项。
* 3,setSingleChoiceItems():设置对话框的内容为单选列表项。
* 4,setMultiChoiceItems():设置对话框的内容为多选列表项。
* 5,setAdapter():设置对话框的内容为自定义列表项。
* 6,setView():设置对话框的内容为自定义View。

下面通过几个实例在介绍具体的用法。

简单提示消息对话框

/** 显示简单对话框 */
private void showDialogForMessage() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this)
            .setTitle("简单的对话框")
            .setIcon(R.mipmap.ic_launcher)
            .setMessage("对话框内的内容");
    setPositiveButtom(builder);
    setNegativeButton(builder)
            .create()
            .show();
}

由于有多个Dialog需要演示,所以把添加Button的方法重新抽取为了一个单独的方法进行复用,下面演示的Dialog都使用到了这两个方法:

/** 添加确定按钮 */
public AlertDialog.Builder setPositiveButtom(AlertDialog.Builder builder) {
    return builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(MainActivity.this, "点击了确定按钮", Toast.LENGTH_SHORT).show();
            dialog.dismiss();
        }
    });
}

/** 设置取消按钮 */
public AlertDialog.Builder setNegativeButton(AlertDialog.Builder builder) {
    return builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
        @Override
        public 
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值