Android原生控件 -- AlertDialog(警示对话框)

⒈使用

  普通使用

复制代码
        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
        builder.setTitle("请回答:");
        builder.setMessage("你觉得蔡徐坤球技如何?");
        builder.setIcon(R.drawable.icon_user);
        builder.setPositiveButton("棒", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(),"我看你是个智障",Toast.LENGTH_LONG).show();
            }
        });
        builder.setNeutralButton("还行", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(),"我看你视力并不怎么好",Toast.LENGTH_LONG).show();
            }
        });
        builder.setNegativeButton("垃圾", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(),"你很诚实",Toast.LENGTH_LONG).show();
            }
        });
        builder.show();
复制代码

  单选框形式

复制代码
        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
        builder.setTitle("选择性别:");
        final String[] array = new String[]{"男","女"};
        builder.setItems(array, new DialogInterface.OnClickListener() {
            /**
             *
             * @param dialog
             * @param which 选中的数组索引
             */
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(),"您选中了 " + array[which],Toast.LENGTH_LONG).show();
            }
        });
复制代码

  单选按钮形式

复制代码
        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
        builder.setTitle("选择性别:");
        final String[] array = new String[]{"男","女"};
        builder.setSingleChoiceItems(array, 0, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(),"您选中了 " + array[which],Toast.LENGTH_LONG).show();
            }
        });
复制代码

  默认情况下点击弹出框其他区域 弹出框将会消失,通过以下方式禁用。

builder.setCancelable(false);

  默认情况下点击弹出框的选项弹出框并不会消息,通过以下方式使其消失。

            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(),"您选中了 " + array[which],Toast.LENGTH_LONG).show();
                dialog.dismiss();
            }

  多选

复制代码
        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
        builder.setTitle("选择你的特长:");
        final String[] array = new String[]{"唱歌","跳舞","编程","泡妞"};
        boolean[] isSelected = new boolean[]{false,false,true,true};
        builder.setMultiChoiceItems(array, isSelected, new DialogInterface.OnMultiChoiceClickListener() {
            /**
             *
             * @param dialog
             * @param which 表示点击的索引
             * @param isChecked 标识当前点击的选中状态
             */
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                Toast.makeText(getApplicationContext(),array[which] + ":" + isChecked,Toast.LENGTH_LONG).show();
                dialog.dismiss();
            }
        });
复制代码

   自定义布局视图展示

        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
        builder.setTitle("请先登录");
        View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.layout_dialog,null);
        EditText etUserName = view.findViewById(R.id.et_username);
        EditText etPassWord = view.findViewById(R.id.et_password);
        Button btnLogin = view.findViewById(R.id.btn_login);
        builder.setView(view).show();

 

 

   

作者:奇

出处:https://www.cnblogs.com/fanqisoft/p/12161427.html

版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。

posted @   SpringCore  阅读(892)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示