移动设备软件开发-AlertDialog6种使用方法

news2024/11/17 16:40:45

AlertDialog

1.AlertDialog的6种创建模式

1.1setMessage

1)Java代码

//1.创建构造器
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        //2.设置参数
        builder.setTitle("弹窗提示")
                .setIcon(R.mipmap.boy)
                .setMessage("选择你的性别?")
                .setPositiveButton("男",new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(DialogTest.this, "选中男", Toast.LENGTH_SHORT).show();
                    }
                })
                .setNegativeButton("女",new DialogInterface.OnClickListener(){


                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(DialogTest.this, "选中女", Toast.LENGTH_SHORT).show();
                    }
                })
                .setNeutralButton("未知",new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(DialogTest.this, "选中未知", Toast.LENGTH_SHORT).show();
                    }

                });

1.2setItem,设置列表项

1)Java代码

String[] citys={"济南","青岛","潍坊","日照","临沂","枣庄"};
        //1.创建构造器
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        //2.设置参数
        builder.setTitle("请选择城市地区")
                .setIcon(R.mipmap.city)
                .setItems(citys, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(DialogTest.this, ""+citys[i], Toast.LENGTH_SHORT).show();
                    }
                })
                .setPositiveButton("确认",new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNegativeButton("取消",new DialogInterface.OnClickListener(){


                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNeutralButton("忽略",new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }

                });
        //3.创建对象,显示对象
        builder.create().show();

1.3setSingleChoiceItems,设置对话框内容为单选列表项

  • 可以传递数组或者是集合
String[] citys={"济南","青岛","潍坊","日照","临沂","枣庄"};
        //1.创建构造器
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        //2.设置参数
        builder.setTitle("请选择城市地区")
                .setIcon(R.mipmap.city)
                .setSingleChoiceItems(citys, 0,new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(DialogTest.this, ""+citys[i], Toast.LENGTH_SHORT).show();
                    }
                })
                .setPositiveButton("确认",new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNegativeButton("取消",new DialogInterface.OnClickListener(){


                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNeutralButton("忽略",new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }

                });
        //3.创建对象,显示对象
        builder.create().show();

1.4setMultiChoiceItems设置多选

 //                设置多选
        String[] citys={"济南","青岛","潍坊","日照","临沂","枣庄"};
        //1.创建构造器
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        //2.设置参数
        builder.setTitle("请选择城市地区")
                .setIcon(R.mipmap.city)
                .setMultiChoiceItems(citys, new boolean[]{false, false, false, false, false, false}, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i, boolean b) {
                        Toast.makeText(DialogTest.this, ""+citys[i]+b, Toast.LENGTH_SHORT).show();
                    }
                })
                .setPositiveButton("确认",new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNegativeButton("取消",new DialogInterface.OnClickListener(){


                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNeutralButton("忽略",new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }

                });
        //3.创建对象,显示对象
        builder.create().show();

1.5setAdapter设置自定义的样式

  • 需要传入一个自定义的布局

1)子布局样式

  • 文本框
  • 输入框
  • 多选框
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <TextView
            android:id="@+id/s1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            />
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/s2"
            android:layout_weight="1"
            />
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/s3"
            />
    </LinearLayout>
</LinearLayout>

2)Java代码

        //                设置多选
        String[] citys={"济南","青岛","潍坊","日照","临沂","枣庄"};
        //1.创建构造器
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        //2.设置参数
        builder.setTitle("请选择城市地区")
                .setIcon(R.mipmap.city)
                .setAdapter(new ArrayAdapter<String>(DialogTest.this, R.layout.myselect,R.id.s1,citys), new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {

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

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNegativeButton("取消",new DialogInterface.OnClickListener(){


                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNeutralButton("忽略",new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }

                });
        //3.创建对象,显示对象
        builder.create().show();

1.6setView,指定对话框为自定义的View

1)布局代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="账号:"
            android:textSize="30dp"
            />
        <EditText

            android:id="@+id/account"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:hint="输入账号"
            android:singleLine="true"
            android:maxLength="16"
            android:layout_weight="1"
            android:textSize="30dp"
            />

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密码:"
            android:textSize="30dp"
            android:inputType="textPassword"
            />
        <EditText
            android:id="@+id/password"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:hint="输入密码"
            android:singleLine="true"
            android:maxLength="16"
            android:layout_weight="1"
            android:textSize="30dp"
            />

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >

        <Button
            android:id="@+id/lbtn1"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="登录"
            android:textSize="30dp"
            />
        <Button
            android:id="@+id/lbtn2"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="取消"
            android:textSize="30dp"
            />

    </LinearLayout>
</LinearLayout>

2)Java代码

  • dismiss,可以设置消失
//        6.自定义View
        //1.获取布局
        View view= LayoutInflater.from(this).inflate(R.layout.login,null);
        //2.获取布局中的控件
        EditText account=view.findViewById(R.id.account);
        EditText password=view.findViewById(R.id.password);
        Button lbtn1=view.findViewById(R.id.lbtn1);
        Button lbtn2=view.findViewById(R.id.lbtn2);

        //3.创建构造器
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        //4.设置参数
        builder.setTitle("输入指定的登录信息")
                .setIcon(R.mipmap.city)
                .setView(view)
                .setPositiveButton("确认",new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNegativeButton("取消",new DialogInterface.OnClickListener(){


                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNeutralButton("忽略",new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }

                });
        //5.创建对象,
        AlertDialog alertDialog=builder.create();
        //6.单独设置事件监听器
        lbtn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (account.getText().toString().equals("1001")&&password.getText().toString().equals("123456")){
                    Toast.makeText(DialogTest.this, "登录成功!", Toast.LENGTH_SHORT).show();
                    //===设置对话框消失===
                    alertDialog.dismiss();
                }
            }
        });

        lbtn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(DialogTest.this, "取消登录!", Toast.LENGTH_SHORT).show();
                //===设置对话框消失===
                alertDialog.dismiss();
            }
        });
        //7.显示对象
        alertDialog.show();
    }

3)改建

public void loginAlert(View view1) {
            //        6.自定义View
            //1.获取布局
            View view= LayoutInflater.from(this).inflate(R.layout.login,null);
            //2.获取布局中的控件
            EditText account=view.findViewById(R.id.account);
            EditText password=view.findViewById(R.id.password);
            Button lbtn1=view.findViewById(R.id.lbtn1);
            Button lbtn2=view.findViewById(R.id.lbtn2);

            //3.创建构造器
            AlertDialog.Builder builder=new AlertDialog.Builder(this);
            //4.设置参数
            builder.setTitle("输入指定的登录信息")
                    .setIcon(R.mipmap.city)
                    .setView(view)
                    .setPositiveButton("确认",new DialogInterface.OnClickListener(){

                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {

                        }
                    })
                    .setNegativeButton("取消",new DialogInterface.OnClickListener(){


                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {

                        }
                    })
                    .setNeutralButton("忽略",new DialogInterface.OnClickListener(){

                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {

                        }

                    });
            //5.创建对象,
            AlertDialog alertDialog=builder.create();
            //6.单独设置事件监听器
            lbtn1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (account.getText().toString().equals("1001")&&password.getText().toString().equals("123456")){
                        Toast.makeText(DialogTest.this, "登录成功!", Toast.LENGTH_SHORT).show();
                        //===设置对话框消失===
                        alertDialog.dismiss();
                    }
                }
            });

            lbtn2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(DialogTest.this, "取消登录!", Toast.LENGTH_SHORT).show();
                    //===设置对话框消失===
                    alertDialog.dismiss();
                }
            });
            //7.显示对象
            alertDialog.show();
        }

点击弹出框之后的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/107559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是WMS系统?WMS系统有什么功能

科技进步促使的数字化转型正在为大多数行业铺平道路&#xff0c;并重新定义它们在各个方面的功能&#xff0c;物流行业也不例外&#xff0c;因为它见证了日常运营的重大转变。改变物流行业的关键之一就是WMS系统的引入。仓储一直是运输和物流部门的核心支柱&#xff0c;随着新工…

基于Vue+Express+Mysql开发的手机端电影购票系统(附源码)

基于VueExpressMysql开发的手机端电影购票系统 基于手机的电影购票系统-VueNode 一个VueExpressMysql的电影售票项目 项目完整源码下载 https://download.csdn.net/download/DeepLearning_/87327200 前端展示 后台展示 项目说明 项目目录 ├── film 前端页面项目文件 …

HTML CSS JS游戏网页设计作业「响应式高端游戏资讯bootstrap网站」

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

windows上datax的使用记录

datax使记录 简介 https://github.com/alibaba/DataX DataX 是阿里云 DataWorks数据集成 的开源版本&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(O…

[洛谷]P1449 后缀表达式

[洛谷]P1449 后缀表达式一、问题描述&#xff1a;题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示二、思路分析1、算法标签2、思路三、代码实现一、问题描述&#xff1a; 传送门&#xff1a;[洛谷]P1449 后缀表达式 题目描述 所谓后缀表达式是指这样的一个表达式…

DJ14 简单接口电路及应用

目录 一、I/O 接口 1. 接口和端口的关系 2. 接口的基本结构 3. 8086/8088 端口编址 二、简单接口芯片 1. 74LS244 三态门 2. 74LS273 锁存器 3. 74LS374锁存器 4. 综合应用 三、基本输入输出方式 1. 无条件传送方式 2. 查询工作方式 一、I/O 接口 1. 接口和端口的…

校招面试真题 | 你的期望薪资是多少?为什么?

很多人去面试的时候&#xff0c;就像打游戏&#xff0c;过五关斩六将&#xff0c;终于到最后一关了&#xff0c;但是谈薪资的难度堪比打游戏中搞定终级 boss 的难度&#xff0c;真的是太「南」了&#xff0c;好多人都是因为这个问题让自己五味杂陈呀。报高了怕好 offer 失之交臂…

基因编辑相关最新研究进展(2022年12月)

【1】西湖大学马丽佳团队开发新型CRISPR脱靶和DNA易位检测工具 2022-12-15报道&#xff0c;2022年12月12日&#xff0c;西湖大学生命科学学院马丽佳团队在 Nature Communications 期刊发表了题为&#xff1a;PEAC-seq adopts Prime Editor to detect CRISPR off-target and DN…

C++11标准模板(STL)- 算法(std::next_permutation)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 产生某个元素范围的按字典…

Spring Cloud 2022.0.0 正式发布,代号 “Kilburn“

Spring Cloud 2022.0.0 已正式发布。 获取地址&#xff1a;https://repo1.maven.org/maven2/org/springframework/cloud/spring-cloud-dependencies/2022.0.0/ Spring Cloud 为开发人员提供了工具&#xff0c;以快速构建分布式系统中的某些常见模式&#xff08;例如&#xff1a…

java中的垃圾回收算法

java中有四种垃圾回收算法&#xff0c;分别是&#xff1a; 标记清除法、标记整理法、复制算法、分代收集算法 1、标记清除法: 第一步:利用可达性去遍历内存&#xff0c;把存活对象和垃圾对象进行标记; 第二步:在遍历一遍&#xff0c;将所有标记的对象回收掉; 特点:效率不行…

Java+MySQL基于ssm的超市进销存会员管理系统

随着我国经济的高速增长,各类超市和便利店也是越来越多,超市和便利店的出现,方便了人们对于日常生活消费的需要,为了能够更好的对超市的顾客进行服务,大多数超市提出了会员的机制,通过这种机制来增加用户的黏度,在给用户提供更好的服务的同时也提高了营业额。 超市会员管理系统…

转行,你考虑清楚了吗?

“我为什么离开中石油”写完后&#xff0c;引发了不少人的共鸣&#xff0c;一些在工作中苦苦挣扎、渴望转行的朋友&#xff0c;在微信上询问我转行情况和转行建议。 非常感谢朋友们的关心和信任&#xff0c;然而我并非什么职业规划大师&#xff0c;只是一个在石油圈混了五年的…

ChatGPT进化的秘密

本文作者&#xff0c;符尧 yao.fued.ac.uk&#xff0c;爱丁堡大学 (University of Edinburgh) 博士生&#xff0c;本科毕业于北京大学&#xff0c;与彭昊&#xff0c;Tushar Khot 在艾伦人工智能研究院 (Allen Institute for AI) 共同完成英文原稿&#xff0c;与剑桥大学郭志江…

搞懂Redis 数据存储原理,别只会 set、get 了

我的核心模块如图 1-10。 图 1-10 Client 客户端&#xff0c;官方提供了 C 语言开发的客户端&#xff0c;可以发送命令&#xff0c;性能分析和测试等。 网络层事件驱动模型&#xff0c;基于 I/O 多路复用&#xff0c;封装了一个短小精悍的高性能 ae 库&#xff0c;全称是 a si…

【C语言】函数的声明_函数定义_函数调用_函数递归 [函数的基本使用]

文章目录前言1.函数是什么?2.C语言中函数的分类2.1 库函数2.2 自定义函数3.函数的参数3.1 实际参数&#xff08;实参&#xff09;&#xff1a;3.2 形式参数&#xff08;形参&#xff09;&#xff1a;4.函数的调用4.1 传值调用4.2 传址调用4.3 练习5.函数的嵌套调用和链式访问5…

羊没羊,好像也没那么重要了!

疫情管控刚一放开&#xff0c;我就一直在想&#xff0c;如何降低羊&#x1f411;的概率和影响。​由于家里老人身体不太好&#xff0c;孩子年龄又太小&#xff0c;加上只有我一个人整天在外面跑&#xff0c;感染的几率最大。所以最后想了一下&#xff0c;决定先在外面租个房子&…

零基础学编程,怎么开始学习?

编程零基础的话&#xff0c;我先建议你看一些经典的书籍&#xff0c;抑或是通俗易懂的计算机常识书。 这几本书各有千秋&#xff0c;我参考了我自己尝试过的几种方法&#xff0c;可以为你选择最适合你的学习方法提供一种参考。首先要判断你的决心有多大&#xff0c;一则花费金…

华为云会议,开会就是如此简单

现在工作节奏加快&#xff0c;高效沟通&#xff0c;快速决策&#xff0c;立刻执行成为组织提升整体效益的关键&#xff0c;而会议作为企业之间重要的沟通工具&#xff0c;被广泛的应用于日常工作中&#xff0c;云会议更可以跨越时空的限制&#xff0c;更为方便快捷。 华为云会议…

UML类图语法介绍

UML类图语法介绍一 官方定义基本介绍UML 图分类建模工具二 六大关系2.1 依赖关系代码体现UML图示2.2 泛化关系代码体现UML图示2.3 实现关系代码体现UML图示2.4 关联关系代码体现UML图示2.5 聚合关系代码体现UML图示2.6 组合关系代码体现UML图示一 官方定义 UML - Unified model…