【转】对话框大合集

电脑B站上传合集视频详细教程 加入合集后,你还需要为合集视频添加介绍。这通常包括合集的整体简介、各个视频之间的关联关系等。填写完毕后,仔细检查一遍确保没有遗漏或错误。 阅读详情
刚开始学习Android不久,今天看到优快云上这篇文章不错,特地转过来学习学习






1.确定取消对话框


对话框中有2个按钮   通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。



我们使用AlerDialog 创建对话框

  1. AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);   

使用builder设置对话框的title button icon 等等

  1. builder.setIcon(R.drawable.icon);  
  2.        builder.setTitle("你确定要离开吗?");  
  3.        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  4.            public void onClick(DialogInterface dialog, int whichButton) {  
  5.                //这里添加点击确定后的逻辑  
  6.                showDialog("你选择了确定");  
  7.            }  
  8.        });  
  9.        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  10.            public void onClick(DialogInterface dialog, int whichButton) {  
  11.                //这里添加点击确定后的逻辑  
  12.                showDialog("你选择了取消");  
  13.            }  
  14.        });  
  15.        builder.create().show();  

   这个dialog用于现实onClick后监听的内容信息

  1. private void showDialog(String str) {  
  2. w AlertDialog.Builder(MainDialog.this)  
  3.      .setMessage(str)  
  4.      .show();  
  5. }  



2.多个按钮信息框




  1. AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);           
  2. builder.setIcon(R.drawable.icon);  
  3. builder.setTitle("投票");  
  4. builder.setMessage("您认为什么样的内容能吸引您?");  
  5. builder.setPositiveButton("有趣味的", new DialogInterface.OnClickListener() {  
  6.     public void onClick(DialogInterface dialog, int whichButton) {  
  7.         showDialog("你选择了有趣味的");  
  8.     }  
  9. });  
  10. builder.setNeutralButton("有思想的", new DialogInterface.OnClickListener() {  
  11.     public void onClick(DialogInterface dialog, int whichButton) {  
  12.         showDialog("你选择了有思想的");                      
  13.     }  
  14. });  
  15. builder.setNegativeButton("主题强的", new DialogInterface.OnClickListener() {  
  16.     public void onClick(DialogInterface dialog, int whichButton) {  
  17.         showDialog("你选择了主题强的");    
  18.     }  
  19. });  
  20. builder.create().show();  




3.列表框




这个数组用于列表选择

  1. final String[] mItems = {"item0","item1","itme2","item3","itme4","item5","item6"};  




  1. AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);   
  2.         builder.setTitle("列表选择框");  
  3.         builder.setItems(mItems, new DialogInterface.OnClickListener() {  
  4.             public void onClick(DialogInterface dialog, int which) {  
  5.                 //点击后弹出窗口选择了第几项  
  6.                 showDialog("你选择的id为" + which + " , " + mItems[which]);  
  7.             }  
  8.         });  
  9.         builder.create().show();  



4.单项选择列表框



mSingleChoice 用于记录单选中的ID

  1. int mSingleChoiceID = -1;  
  1. AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);   
  2.   
  3. mSingleChoiceID = -1;  
  4. builder.setIcon(R.drawable.icon);  
  5.     builder.setTitle("单项选择");  
  6.     builder.setSingleChoiceItems(mItems, 0, new DialogInterface.OnClickListener() {  
  7.         public void onClick(DialogInterface dialog, int whichButton) {  
  8.                 mSingleChoiceID = whichButton;  
  9.                 showDialog("你选择的id为" + whichButton + " , " + mItems[whichButton]);  
  10.         }  
  11.     });  
  12.     builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  13.         public void onClick(DialogInterface dialog, int whichButton) {  
  14.             if(mSingleChoiceID > 0) {  
  15.             showDialog("你选择的是" + mSingleChoiceID);  
  16.             }  
  17.         }  
  18.     });  
  19.     builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  20.         public void onClick(DialogInterface dialog, int whichButton) {  
  21.   
  22.         }  
  23.     });  
  24.    builder.create().show();  




5.进度条框



点击进度条框按钮后 开启一个线程计算读取的进度 假设读取结束为 100 
Progress在小于100的时候一直在线程中做循环++ 只到读取结束后,停止线程。
  1.           mProgressDialog = new ProgressDialog(MainDialog.this);  
  2.      mProgressDialog.setIcon(R.drawable.icon);  
  3.      mProgressDialog.setTitle("进度条窗口");  
  4.      mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
  5.      mProgressDialog.setMax(MAX_PROGRESS);  
  6.      mProgressDialog.setButton("确定", new DialogInterface.OnClickListener() {  
  7.          public void onClick(DialogInterface dialog, int whichButton) {  
  8.              //这里添加点击后的逻辑  
  9.          }  
  10.      });  
  11.      mProgressDialog.setButton2("取消", new DialogInterface.OnClickListener() {  
  12.          public void onClick(DialogInterface dialog, int whichButton) {  
  13.              //这里添加点击后的逻辑  
  14.          }  
  15.      });  
  16.      mProgressDialog.show();  
  17.      new Thread(this).start();  
  18.   
  19. ic void run() {  
  20. int Progress = 0;  
  21. while(Progress < MAX_PROGRESS) {  
  22. try {  
  23.     Thread.sleep(100);  
  24.     Progress++;    
  25.     mProgressDialog.incrementProgressBy(1);  
  26. } catch (InterruptedException e) {  
  27.     // TODO Auto-generated catch block  
  28.     e.printStackTrace();  
  29. }  
  30.    
  31. }  


6.多项选择列表框




MultiChoiceID 用于记录多选选中的id号 存在ArrayList中 
选中后 add 进
ArrayList
取消选中后 remove 出ArrayList
。

  1. ArrayList <Integer>MultiChoiceID = new ArrayList <Integer>();  

  1. AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);   
  2.   
  3. MultiChoiceID.clear();  
  4. builder.setIcon(R.drawable.icon);  
  5.     builder.setTitle("多项选择");  
  6.     builder.setMultiChoiceItems(mItems,  
  7.             new boolean[]{false, false, false, false, false, false, false},  
  8.             new DialogInterface.OnMultiChoiceClickListener() {  
  9.                 public void onClick(DialogInterface dialog, int whichButton,  
  10.                         boolean isChecked) {  
  11.                    if(isChecked) {  
  12.                        MultiChoiceID.add(whichButton);  
  13.                        showDialog("你选择的id为" + whichButton + " , " + mItems[whichButton]);  
  14.                    }else {  
  15.                        MultiChoiceID.remove(whichButton);  
  16.                    }  
  17.                       
  18.                 }  
  19.             });  
  20.     builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  21.         public void onClick(DialogInterface dialog, int whichButton) {  
  22.             String str = "";  
  23.             int size = MultiChoiceID.size();  
  24.             for (int i = 0 ;i < size; i++) {  
  25.             str+= mItems[MultiChoiceID.get(i)] + ", ";  
  26.             }  
  27.             showDialog("你选择的是" + str);  
  28.         }  
  29.     });  
  30.     builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  31.         public void onClick(DialogInterface dialog, int whichButton) {  
  32.   
  33.         }  
  34.     });  
  35.    builder.create().show();  


7.自定义布局



讲到自定义布局我就得多说一说了,为什么要多说一说呢? 
其实自定义布局在Android的开发中非常重要 因为它能让开发者做出自己五彩缤纷的Activity 而不用去使用系统枯燥的界面。

自定义dialog有什么好处?

比如我们在开发过长当中 要通过介绍系统发送的一个广播弹出一个dialog . 但是dialog必需是基于activity才能呈现出来 如果没有activity 的话 程序就会崩溃。所以我们可以写一个自定义的 dialog 把它定义成一个activity
这样我们收到一条打开dialog的广播后 直接启动这个 activity  程序正常运行~~ 

这就是自定义dialog的好处。

注明:下面这个例子只是写了自定义dialog 没有把它单独的写在一个activity中 如果须要的话 可以自己改一下。
  1. AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);   
  2.  LayoutInflater factory = LayoutInflater.from(this);  
  3.  final View textEntryView = factory.inflate(R.layout.test, null);  
  4.      builder.setIcon(R.drawable.icon);  
  5.      builder.setTitle("自定义输入框");  
  6.      builder.setView(textEntryView);  
  7.      builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  8.          public void onClick(DialogInterface dialog, int whichButton) {  
  9.            
  10.          EditText userName = (EditText) textEntryView.findViewById(R.id.etUserName);  
  11.          EditText password = (EditText) textEntryView.findViewById(R.id.etPassWord);  
  12.          showDialog("姓名 :"  + userName.getText().toString()  + "密码:" + password.getText().toString() );  
  13.          }  
  14.      });  
  15.      builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  16.          public void onClick(DialogInterface dialog, int whichButton) {  
  17.   
  18.          }  
  19.      });  
  20.    builder.create().show();  



  1. <span style="color:#000000;"><?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3. android:layout_height="wrap_content"   
  4. android:layout_width="wrap_content"  
  5. android:orientation="horizontal"  
  6. android:id="@+id/dialog">  
  7. <LinearLayout  
  8. android:layout_height="wrap_content"   
  9. android:layout_width="wrap_content"  
  10. android:orientation="horizontal"  
  11. android:id="@+id/dialogname">  
  12.   
  13. <TextView android:layout_height="wrap_content"  
  14.    android:layout_width="wrap_content"  
  15.   android:id="@+id/tvUserName"   
  16.   android:text="姓名:" />  
  17. <EditText android:layout_height="wrap_content"  
  18.   android:layout_width="wrap_content"   
  19.   android:id="@+id/etUserName"   
  20.   android:minWidth="200dip"/>  
  21. </LinearLayout>    
  22. <LinearLayout  
  23. android:layout_height="wrap_content"   
  24. android:layout_width="wrap_content"  
  25. android:orientation="horizontal"  
  26. android:id="@+id/dialognum"  
  27.  android:layout_below="@+id/dialogname"  
  28. >  
  29.   <TextView android:layout_height="wrap_content"  
  30.    android:layout_width="wrap_content"  
  31.   android:id="@+id/tvPassWord"   
  32.   android:text="密码:" />  
  33. <EditText android:layout_height="wrap_content"  
  34.   android:layout_width="wrap_content"   
  35.   android:id="@+id/etPassWord"   
  36.   android:minWidth="200dip"/>  
  37.  </LinearLayout>    
  38.   </RelativeLayout></span>  

8.读取进度框

显示一个正在转圈的进度条loading

  1. mProgressDialog = new ProgressDialog(this);  
  2.  mProgressDialog.setTitle("读取ing");  
  3.  mProgressDialog.setMessage("正在读取中请稍候");  
  4.  mProgressDialog.setIndeterminate(true);  
  5.  mProgressDialog.setCancelable(true);  
  6.  mProgressDialog.show();  





Android开发中常用的对话框(移动端开发) 在移动应用程序开发中,对话框是一种常见的用户界面元素,用于显示重要的信息、接收用户输入或确认操作。Android平台提供了多种类型的对话框,每种对话框都有其特定的用途和样式。在本文中,我们将介绍Android开发中常用的几种对话框,并提供相应的源代码示例。以上是Android开发中几种常用的对话框类型的示例代码。通过使用这些对话框,开发人员可以方便地与用户进行交互,并提供各种选择和确认操作。提示对话框是一种常见的对话框类型,用于显示一条消息并等待用户确认。多选对话框允许用户从多个选项中选择多个选项。 阅读详情

相关推荐

对话框大合集

详细介绍各种对话框的使用技巧。 点击进度条框按钮后 开启一个线程计算读取的进度 假设读取结束为 100 Progress在小于100的时候一直在线程中做循环++ 只到读取结束后,停止线程。

Android 对话框(Dialogs)

对话框是提示用户作出决定或输入额外信息的小窗口。 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件。 1、对话框设计 如需了解有关如何设计对话框的信息(包括语言建议),请阅读对话框设计指南。 Dialog类是对话框的基类,但您应该避免直接实例化Dialog,而是使用下列子类之一: AlertDialog此对话框可显示标题、最多三个按钮、可选择项列表或...

weixin_30845171的博客 277

保姆级教程:用rosbag录制和回放你的第一个ROS机器人数据(附C++/Python代码)

本文提供了一份详细的ROS机器人数据录制与回放教程,涵盖从命令行操作到C++/Python编程实现的全流程。通过rosbag工具,开发者可以高效记录和回放机器人运行时的传感器数据和控制指令,适用于故障复现、算法调试等多种场景。教程还包含高级技巧如时间同步和大文件处理,帮助用户快速掌握ROS数据管理核心技能。

weixin_29313239的博客 283

Android 对话框(Dialog)大全 建立你自己的对话框

  Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). ...

weixin_34019144的博客 534

LTO编译器优化介绍以及开启方法

LTO优化的详细介绍

性感的小君君 4924

300Kg载重履带式无人车底盘定制开发技术详解

通过精准的需求分析、科学的方案设计、严格的研发与测试以及完善的交付与培训流程,可以打造出符合客户需求的优质产品。300Kg载重履带式无人车底盘的定制开发,旨在打造一款承载能力强、行驶稳定、适应复杂地形的无人运输平台。根据应用场景选择合适的动力源,并进行性能优化,确保无人车在载重情况下仍能保持稳定的行驶速度和动力输出。根据需求分析结果,设计无人车底盘的总体方案,包括动力系统选择、结构设计、负载管理策略等。进行详细的研发工作,包括零部件的选型与采购、样机的制作与调试等。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 958

(转)Android软件开发之盘点所有Dialog对话框大合集(一)

对话框大合集 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/9 雨松MOMO带大家盘点Android 中的对话框 今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。

gxj1680的专栏 702

LightGBM学习笔记

LightGB学习笔记1. lightgbm概述1.1 lightgbm介绍1.2 lightgbm和xgboost对比2 .直方图算法及改进2.1 直方图算法2.2 直方图算法改进2.2.1 GOSS算法3.树的生长策略4.系统设计5. 实战 lightgbm是基于boosting的学习框架,使用的是基于决策树的学习算法,具有更快的训练速度、更低的内存使用、更高的正确率、并且能够支持并行化学习,可以用来处理大规模数据,本文主要是针对学习视频https://www.bilibili.com/video/BV

一一xi的博客 3305

Android 盘点所有Dialog 对话框 大合集 详解

对话框大合集雨松MOMO带大家盘点Android 中的对话框今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。 1.确定取消对话框对话框中有2个按钮   通过调用 setPositiveButton 方法 和 setNegativeButton

开发简记 648

无人机+消防车:高楼灭火系统技术详解

传统的消防设备,如登高车、车载水枪、水炮和高喷车,在50米以上高度的火源面前往往力不从心,100米以上高层火灾则更加依赖消防员“爬楼”灭火,效率低下且风险极高。消防水带:采用聚乙烯丝材质,超轻、耐腐蚀、强度高,能够携带大量水或灭火泡沫进行高空喷水灭火作业。“无人机+消防车”高楼灭火系统主要由消防车和无人机两部分组成,通过机车联动实现高效灭火。高效灭火:无人机能够快速到达高层建筑顶部或指定位置进行灭火作业,大大提高了灭火效率。空压泡沫系统:配备超大水箱,支持长时间供应灭火泡沫,满足无人机灭火剂的需求。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1671

高通开发系列 - Linux/Ubuntu移植到QCS8xxx平台

QCS8250和QRB5165平台属于体系架构相同的芯片,前置是带cellular而后者不带,即前置有移动网络而后者没有。 BSP部分的软件内容有差异需要修改外,同一套代码编译出来的执行程序是可以运行的,不会存在体系架构、指令集不匹配的问题。 QCS8250平台没有Linux/Ubuntu的软件SDK,只有Android的SDK,但是它对应j兼容的QRB5165平台有LE(Linux)和Ubun(Ubuntu)SDK。所以我们需要做的就是用QRB5165 Linux/Ubuntu移植到QCS8250平台上来

fulinux的博客 3186

各种安卓对话框代码合集

1.代码运行目录 AndroidManifest.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.administr...

banglun5623的博客 821

《YOLOv8:从入门到实战》专栏介绍 & 专栏目录

本专栏涵盖了丰富的YOLOv8算法从入门到实战系列教程,专为学习YOLOv8的同学而设计,堪称全网最详细的教程!🌈🌈🌈

小哥谈 6489

Android软件开发之盘点所有Dialog对话框大合集(一)

对话框大合集雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/9雨松MOMO带大家盘点Android 中的对话框今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。 1.确定取消对话框对话框中有2个按钮   通过调用 setPositiveButton 方

雨松MOMO的程序世界专栏 2万+

第1.2章 机器人SLAM计算机基础总结(二):VSCode教程及 AI等效率插件推荐

如何高效编写代码?怎样快速调试程序?**别担心,今天就给大家带来一款超强大的编程神器 ——VSCode,以及能让编程之路 “一马平川” 的实用插件推荐,无论你是新手小白还是资深大神,都能从中受益!

行知SLAM 1862

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

<转>Android中的对话框AlertDialog使用技巧合集

今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。  1.确定取消对话框 对话框中有2个按钮   通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。 我们使用AlerDialog 创建对话框 vi

1415

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android软件开发之盘点所有Dialog对话框大合集(一) .

对话框大合集 雨松MOMO原创文章如转载,请注明:转载自雨松MOMO的博客原文地址:http://blog.youkuaiyun.com/xys289187120/article/details/6601613 雨松MOMO带大家盘点Android 中的对话框 今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。

hare_Lee的专栏 699

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android对话框合集AlertDialog

android对话框合集AlertDialog demo mydialogs: 1.activity_main.xml <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http...

苏凯的博客 215

技术转载:Android对话框大合集

对话框大合集 雨松MOMO原创文章如转载,请注明:转载自雨松MOMO的博客原文地址:http://blog.youkuaiyun.com/xys289187120/article/details/6601613 雨松MOMO带大家盘点Android 中的对话框 今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。

duancanmeng的专栏 863

Android 对话框大合集

原文出自:http://blog.youkuaiyun.com/xys289187120/article/details/6601613 今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。 1.确定取消对话

liuhanhan512的专栏 540
上一篇: 【转】对话框大合集
下一篇: ERROR: the user data image is used by another emulator. aborting错误解决方法
ehlxr
博客等级 码龄16年 3粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值