zoukankan      html  css  js  c++  java
  • Android 对话框组件 AlertDialog 四种常用方法

    本文原创首发CSDN,链接 https://blog.csdn.net/qq_41464123/article/details/106618845 ,作者博客https://blog.csdn.net/qq_41464123 ,转载请带上本段文字,尤其是脚本之家、码神岛等平台,谢谢配合。


    目录

    一、什么是AlertDialog对话框 ?

    二、如何使用?

    1.显示带确定、取消按钮的对话框

    2. 显示带列表的对话框

    3. 显示带单选列表项的对话框

    4. 显示带多选列表项的对话框

    三、总结


    一、什么是AlertDialog对话框 ?

    在Android中,AlertDialog可以为当前的界面上显示一个对话框,而且产生的对话框是在所有界面元素上面的,能够覆盖掉其余组件,所以AlertDialog一般是用于提示一些非常重要的信息或者警告内容。

    二、如何使用?

    AlertDialog的功能十分强大,它不仅可以生成带按钮的提示对话框,还可以生成带列表的列表对话框

    对话框区域通常被分为四个区域,分别是图标区、标题区、内容区、按钮区域

    1.显示带确定、取消按钮的对话框

    效果图:

    单击按钮后:

     对话框隐藏,提示单击信息。

     实现方法,在XML文件中新建一个按钮,在Java文件中添加单击事件响应

    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
            alertDialog.setIcon(R.mipmap.advise);
            alertDialog.setTitle("标题");
            alertDialog.setMessage("具体文本");
    
            alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "否", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "您单击了否按钮", Toast.LENGTH_SHORT).show();
                }
            });
    
            alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "是", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "您单击了是按钮 ", Toast.LENGTH_SHORT).show();
                }
            });
            alertDialog.show();
        }
    });

    2. 显示带列表的对话框

    效果展示:

    单击按钮后:

    对话框隐藏,提示单击信息。

    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
    
            final String[] items = new String[]{"选项1", "选项2", "选项3","选项4"};
    
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setIcon(R.mipmap.advise1);
            builder.setTitle("请选择选项:");
    
            builder.setItems(items, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this,
                            "您选择了" + items[which], Toast.LENGTH_SHORT).show();
                }
            });
            builder.create().show();
        }
    });

    3. 显示带单选列表项的对话框

    效果展示:

    单击后:

     Java逻辑代码部分:

    button3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
    
            final String[] items = new String[]{"扎克伯格", "乔布斯", "拉里.埃里森", "安迪.鲁宾", "马云"};
    
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setIcon(R.mipmap.advise2);
            builder.setTitle("如果让你选择,你最想做哪一个:");
            builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this,
                            "您选择了" + items[which], Toast.LENGTH_SHORT).show();
                }
            });
            builder.setPositiveButton("确定", null);
            builder.create().show();
        }
    });

    本文原创首发CSDN,链接 https://blog.csdn.net/qq_41464123/article/details/106618845 ,作者博客https://blog.csdn.net/qq_41464123 ,转载请带上本段文字,尤其是脚本之家、码神岛等平台,谢谢配合。


    4. 显示带多选列表项的对话框

    效果展示:

    单击后:

     点击确定后,显示:

     Java逻辑代码:

    button4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            checkedItems = new boolean[]{false, true, false, true, false};
            //各列表项要显示的内容
            items = new String[]{"开心消消乐", "球球大作战", "欢乐斗地主", "梦幻西游", "超级玛丽"};
    
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setIcon(R.mipmap.advise2);
            builder.setTitle("请选择您喜爱的游戏:");
            builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    checkedItems[which] = isChecked;
    
                }
            });
    
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    String result = "";
                    for (int i = 0; i < checkedItems.length; i++) {
                        if (checkedItems[i]) {
                            result += items[i] + "、";
                        }
                    }
                    if (!"".equals(result)) {
                        result = result.substring(0, result.length() - 1);
                        Toast.makeText(MainActivity.this,
                                "您选择了[ " + result + " ]", Toast.LENGTH_LONG).show();
                    }
                }
            });
            builder.create().show();
        }
    });

    三、总结

     

    在Android中,如果需要使用 对话框 组件,来实现一定的功能,就需要用到 AlertDialog

    本文主要总结了 AlertDialog 的四种常用方法,以便后续不时之需。

  • 相关阅读:
    问题九十五:Reverse Text
    类对象Java设计模式之十八(中介者模式)
    节点离散温度场有限差分(有限容积)程序入门之三:2D温度场显式迭代计算(暂不考虑潜热)
    分析打开hdu 3335 (最小路径覆盖)
    结点树数据结构:树的定义和基本概念
    数据手动输入c++ 结构体练习 结构体重的char数组指针
    反转指向字符串反转C++实现源码(带测试用例)
    采样干扰十大滤波算法程序大全
    前缀子节点并行前缀求和的算法
    FatMouse's Speed
  • 原文地址:https://www.cnblogs.com/yyzwz/p/13393215.html
Copyright © 2011-2022 走看看