对话框之AlertDialog、DatePickerDialog(日期选择对话框)、TimePickerDialog(时间选择)、ProgressDialog(进度)、PopupWindow

AlertDialog及子类的继承关系:
这里写图片描述

AlertDialog:(对话框是基于Activity的)

1.概述:

1)对话框分为两种,一种是简单的对话框,一种悬浮窗。
4.0之后,确定按钮在右边,而在2.3之前,是在左边,要注意。
2)AlertDialog生成的对话框可分为4个区域:
图标区
标题区
内容区
按钮区

2.使用方法:

  • 步骤:
    1)建立builder,并set其图片、标题、内容、以及各种按钮
    (注:1>按钮的传入参数除了其名称,还有一个点击事件,而dialog中按钮的点击事件是利用new DialogInterface.OnClickListener()来完成的。2>由于对话框式基于activity的,所以传入的context应是当前界面.this)
    由于set方法后得到的仍是builder,所以可以连续set。
    2)builder的create()成为对话框。
    3)对话框dialog显示。
    builder的界面:
    这里写图片描述

  • 指定对话框内容的几种方法:
    setMessage(); //设置简单内容
    setItems(); //设置对话框内容为简单列表项。
    setSingleChoiceItems(); //设置内容为单选列表项
    setMultiChoiceItems(); //设置内容为多选列表项
    setAdapter(); //设置内容为自定义列表项
    setView(); //设置内容自定义View.

  • 对话框风格第窗口
    只要在AndroidManifest.xml中的activity中加上一句:
    android:theme=”@android:style/Theme.Dialog”
  • 对对话框进行属性的设置
    setCancelable():对话框可否取消,参数为true时:鼠标点击别处,对话框会自动消失;参数为false时:对话框不能消失 ,默认为true

范例1:点击出现简单对话框

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);//1.创建builder
            builder.setIcon(R.drawable.liyifeng).setTitle("这是一个对话框").setMessage("这是其中的内容").setNegativeButton("取消", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface arg0, int arg1) {
                    Toast.makeText(getApplicationContext(), "取消", Toast.LENGTH_LONG).show();

                }
            }).setNeutralButton("中性按钮", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface arg0, int arg1) {
                    Toast.makeText(getApplicationContext(), "中性按钮", Toast.LENGTH_LONG).show();

                }
            }).setPositiveButton("确定", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface arg0, int arg1) {
                    Toast.makeText(getApplicationContext(), "确定", Toast.LENGTH_SHORT).show();

                }
            });
            Dialog dialog = builder.create();
            dialog.show();

结果演示:
这里写图片描述
延伸:也可以在create()之后,由dialog来set,区别在于set按钮时,此方法是setButton1/2/3……
范例2:点击出现带列表的对话框
思路:builder中利用setItems(),其中第一个参数是传入的数据,第二个参数是添加的点击事件,监听第几个列表子项被点击。
注:setItems(),中的点击事件仍旧是用DialogInterface.OnClickListener()。

AlertDialog.Builder builderList = new AlertDialog.Builder(MainActivity.this);
            builderList.setTitle("请选择:");
            builderList.setItems(items, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface arg0, int which) {
                    Toast.makeText(getApplicationContext(), "点击了第"+which+"个", Toast.LENGTH_SHORT).show();

                }
            });
            builderList.create().show();

结果演示:
这里写图片描述

范例3:带单选框的对话框
思路:1.builder中利用setSingleChoiceItems(数据,默认选中的项,点击事件仍用DialogInterface.OnClickListener());2.其中重写的onClick()方法中参数int型which是选中的位置。

A
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值