DialogBox 对话框

  • 一.普通对话框
  • 二.单选对话框
  • 三.多选对话框
  • 四.水平对话框
  • 五.圆形对话框
  • 六.日期对话框
  • 七.时间对话框
  • 八.自定义对话框

当我们点击某些事物或触发一些提示的时候,这时候对话框对话框就非常好用
生活中常用的有8种对话框如下

一.普通对话框

1.首先在布局文件创建一个属性如下

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><Buttonandroid:id="@+id/bu_common_dialog_box"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:text="普通对话框"android:textSize="25dp"android:onClick="onClick"/>
</LinearLayout>

2.初始化控
3.设置监听 (设置相对应的点击事件)
4.完成对话框
5.展示对话框

 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件buCommonDialogBox = (Button) findViewById(R.id.bu_common_dialog_box);}//触发点击事件public void onClick(View view) {//判断点击的事件switch (view.getId()) {//普通对话框case R.id.bu_common_dialog_box://普通对话框方法CommonMethod();break; }}//普通对话框方法private void CommonMethod() {//创建对话框构造者AlertDialog.Builder builder = new AlertDialog.Builder(this);//设置属性builder.setIcon(R.mipmap.ic_launcher_round).setTitle("标题区域").setMessage("内容区域");//确认取消监听builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this, "确认", Toast.LENGTH_SHORT).show();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();}});//创建构造者对象AlertDialog dialog = builder.create();//弹框外是否可取消弹框dialog.setCanceledOnTouchOutside(false);//展示到页面dialog.show();}

点击效果如下

二.单选对话框

1…首先在布局文件创建一个属性如下


<Buttonandroid:id="@+id/bu_radio_dialog_box"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:background="#fff"android:layout_marginLeft="30dp"android:layout_marginTop="30dp"android:layout_marginRight="30dp"android:text="单选对话框"android:textSize="25dp"android:onClick="onClick"/>

2.初始化控件
3.设置属性和普通一样
这里只是把内容用一个字符数组包裹起来
给对话框设置单选构造者即(setSingleChoiceItems)
并设置监听
第一个参数是数据源
第二个参数是默认选择弹框第几个
第三个参数是监听事件

4.获取构造者并展示.(一定不要忘了展示)

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件buRadioDialogBox= (Button) findViewById(R.id.bu_radio_dialog_box);}//触发点击事件public void onClick(View view) {//判断点击的事件switch (view.getId()) {//单选对话框case R.id.bu_radio_dialog_box://单选对话框方法RadioMethod();break; }}private void RadioMethod() {//创建构造者AlertDialog.Builder builder = new AlertDialog.Builder(this);//设置属性builder.setIcon(R.mipmap.ic_launcher_round).setTitle("请选择一名队友");//.setMessage("内容区域");将内容改成单选事件//数据final String[] s = {"小爱同学", "小胖同学", "小花同学"};//设置单选对话框builder.setSingleChoiceItems(s, 1, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this, "" + s[i], Toast.LENGTH_SHORT).show();}});//确认取消监听builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this, "确认", Toast.LENGTH_SHORT).show();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();}});//创建构造者对象AlertDialog dialog = builder.create();//展示到页面dialog.show();}

效果如下

三.多选对话框

1…首先在布局文件创建一个属性如下


<Buttonandroid:id="@+id/bu_much_dialog_box"android:textSize="25dp"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:background="#fff"android:layout_marginLeft="30dp"android:layout_marginTop="30dp"android:layout_marginRight="30dp"android:text="多选对话框"android:onClick="onClick"/>

2.初始化控件
3.设置属性和普通一样
这里只是把内容用一个字符数组包裹起来
并设置一个boolean类型的数组与上面的字符串一一对应true默认选中 false不选中

给对话框设置多选构造者即(setMultiChoiceItems)
并设置监听
第一个参数是数据源
第二个参数是默认选中状态
第三个参数是监听事件

4.获取构造者并展示.(一定不要忘了展示)

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件buMuchDialogBox= (Button) findViewById(R.id.bu_much_dialog_box);}//触发点击事件public void onClick(View view) {//判断点击的事件switch (view.getId()) {//多选对话框case R.id.bu_much_dialog_box://多选对话框方法MuchMethod();break; }}//多选对话框方法private void MuchMethod() {//创建构造者AlertDialog.Builder builder = new AlertDialog.Builder(this);//设置属性builder.setIcon(R.mipmap.ic_launcher_round).setTitle("请选择你的爱好");//.setMessage("内容区域");将内容转变成为多选对话框//数据final String[] s = {"足球", "篮球", "羽毛球", "跑步"};//默认选择状态final boolean[] bool = {true, false, false, false};//设置多选对话框builder.setMultiChoiceItems(s, bool, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i, boolean b) {//改变选中状态bool[i] = b;for (int c = 0; c <= i; c++) {if (bool[c]) {Toast.makeText(MainActivity.this, "" + s[c], Toast.LENGTH_SHORT).show();}}}});//确认取消监听builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this, "确认", Toast.LENGTH_SHORT).show();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();}});//创建构造者对象AlertDialog dialog = builder.create();//展示到页面dialog.show();}

效果如下

四.水平对话框

1…首先在布局文件创建一个属性如下

<Buttonandroid:id="@+id/bu_level_progress_bar_dialog_box"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:background="#fff"android:layout_marginLeft="30dp"android:layout_marginTop="30dp"android:layout_marginRight="30dp"android:text="水平进度条对话框"android:textSize="25dp"android:onClick="onClick"/>

2.初始化控件
3.创建进度对话框
设置属性(最大值进度)(展示方式:精准或模糊)
4.获取构造者并展示.(一定不要忘了展示)
5.接下来我们使用了计时器来完成(当然也可以使用别的休眠方式)
创建定时器对象
使用定时器对象准备计时重写TimerTask方法
这个时候用一个属性来保存进度值
每次隔几秒更新一下进度并更新进度
大于或等于最大进度时我们需要关闭计时器和弹框
计时器后面两个参数
第一个是多少秒后开始即使
第二个参数每次即使多少秒

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件buLevelProgressBarDialogBox= (Button) findViewById(R.id.bu_level_progress_bar_dialog_box);}//触发点击事件public void onClick(View view) {//判断点击的事件switch (view.getId()) {//水平对话框case R.id.bu_level_progress_bar_dialog_box://水平对话框方法LevelMethod();break; }}//水平进度对话框private void LevelMethod() {//创建进度对话框final ProgressDialog progressDialog = new ProgressDialog(this);//设置属性progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);progressDialog.setMax(100);//展示progressDialog.show();//创建定时器对象final Timer timer = new Timer();timer.schedule(new TimerTask() {int index = 0;@Overridepublic void run() {if (index >= 100) {//取消计时器timer.cancel();//关闭弹框progressDialog.dismiss();}//更新进度progressDialog.setProgress(index += 20);}}, 0, 1000);}

效果如下

五.圆形对话框

1…首先在布局文件创建一个属性如下

<Buttonandroid:id="@+id/bu_round_progress_bar_dialog_box"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:background="#fff"android:layout_marginLeft="30dp"android:layout_marginTop="30dp"android:layout_marginRight="30dp"android:text="圆形进度对话框"android:textSize="25dp"android:onClick="onClick"/>

2.初始化控件
3.创建进度对话框
设置属性(最大值进度)(展示方式:精准或模糊)
4.获取构造者并展示.(一定不要忘了展示)
5.接下来我们使用了计时器来完成(当然也可以使用别的休眠方式)
创建定时器对象
使用定时器对象准备计时重写TimerTask方法
这个时候用一个属性来保存进度值
每次隔几秒更新一下进度(不要把展示出来)
大于或等于最大进度时我们需要关闭计时器和弹框
计时器后面两个参数
第一个是多少秒后开始即使
第二个参数每次即使多少秒

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件buRoundProgressBarDialogBox= (Button) findViewById(R.id.bu_round_progress_bar_dialog_box);}//触发点击事件public void onClick(View view) {//判断点击的事件switch (view.getId()) {//模糊对话框case R.id.bu_round_progress_bar_dialog_box://模糊对话框方法RoundMethod();break; }}private void RoundMethod() {//创建进度条对话框final ProgressDialog dialog = new ProgressDialog(MainActivity.this);//设置属性dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);dialog.setMax(100);dialog.setMessage("拼命加载中");//展示dialog.show();//定义计时器final Timer timer = new Timer();timer.schedule(new TimerTask() {int progress = 0;@Overridepublic void run() {if (progress == 100) {dialog.dismiss();timer.cancel();}dialog.setProgress(progress += 20);}}, 0, 1000);}

效果如下

六.日期对话框

1…首先在布局文件创建一个属性如下


<Buttonandroid:id="@+id/bu_data_select_dialog_box"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:background="#fff"android:layout_marginLeft="30dp"android:layout_marginTop="30dp"android:layout_marginRight="30dp"android:text="日期选择对话框"android:textSize="25dp"android:onClick="onClick"/>

2.初始化控件
3.这里为什么要获取日历呢!
因为我们正常情况下都是先看当前日历
所以要获取日历对象用法很简单
calendar.get(Calendar.年) (这里的年使用英文来写可换成年,月,日,小时,分等等)

4创建日期对象即DatePickerDialog(上下文,监听)
会自动生成重写onDateSet
四个参数
第一个用不到
第二个年
第三个月
第四个日
我们还要在监听最后面设置默认日期
使用日历来获取当前日期
第一个年
第二个月
第三个日

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件buDataSelectDialogBox= (Button) findViewById(R.id.bu_data_select_dialog_box);}//触发点击事件public void onClick(View view) {//日期点击的事件switch (view.getId()) {//日期对话框case R.id.bu_data_select_dialog_box://日期对话框方法DataMethod();break; }}//日期选择对话框private void DataMethod() {//创建日历Calendar calendar = Calendar.getInstance();//日期new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker datePicker, int i, int i1, int i2) {//修改之后Toast.makeText(MainActivity.this, i + "-" + (i1 + 1) + "-" + i2, Toast.LENGTH_SHORT).show();}}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_YEAR)).show();//默认选中状态一般使用日历来完成设置当前时间}

效果如下

七.时间对话框

1…首先在布局文件创建一个属性如下


<Buttonandroid:id="@+id/bu_time_select_dialog_box"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:background="#fff"android:layout_marginLeft="30dp"android:layout_marginTop="30dp"android:layout_marginRight="30dp"android:text="时间选择对话框"android:textSize="25dp"android:onClick="onClick"/>

2.初始化控件
3.这里为什么要获取日历呢!
因为我们正常情况下都是先看当前日历
所以要获取日历对象用法很简单
calendar.get(Calendar.年) (这里的年使用英文来写可换成年,月,日,小时,分等等)

4创建日期对象即TimePickerDialog(上下文,监听)
会自动生成重写onTimeSet
四个参数
第一个用不到
第二个小时
第三个分
我们还要在监听最后面设置默认日期
使用日历来获取当前日期
第一个小时
第二个分

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件buTimeSelectDialogBox= (Button) findViewById(R.id.bu_time_select_dialog_box);}//触发点击事件public void onClick(View view) {//判断点击的事件switch (view.getId()) {//时间对话框case R.id.bu_common_dialog_box://时间对话框方法TimeMethod();break; }}//时间选择对话框private void TimeMethod() {//创建日历对象Calendar calendar = Calendar.getInstance();new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker timePicker, int i, int i1) {Toast.makeText(MainActivity.this, "" + i + "." + i1, Toast.LENGTH_SHORT).show();//时,分,true有内圈 false无内圈}}, calendar.get(Calendar.HOUR), calendar.get(Calendar.MINUTE), false).show();}

效果如下

八.自定义对话框

1…首先在布局文件创建一个属性如下


<Buttonandroid:id="@+id/bu_custom3_dialog_box"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#ffffff"android:text="自定义对话框2"android:layout_marginRight="20dp"android:layout_marginLeft="20dp"android:textSize="25dp"android:onClick="onClick"/>

创建一个普通java类续成对话框(Dialog)并创建相对应的xml文件来放自己想要展示的数据

public class Custom3Dialog extends Dialog {private TextView tvCustom;private TextView tvMessage;private Button buCustom3Tu;private Button buCustom3Wu;//可以自己输入修改一些属性内容private String strtvCustom,strtvMessage,strbuCustom3Tu,strbuCustom3Wu;public Custom3Dialog(@NonNull Context context) {super(context);}//创建启动@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.custom3);tvCustom = (TextView) findViewById(R.id.tv_custom);tvMessage = (TextView) findViewById(R.id.tv_message);buCustom3Tu = (Button) findViewById(R.id.bu_custom3_tu);buCustom3Wu = (Button) findViewById(R.id.bu_custom3_wu);//修改属性内容的方法updataUntrue();//设置按钮监听buCustom3Tu.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//调用接口里的方法buCustom3Tulentener.TuClick();//关闭dismiss();}});buCustom3Wu.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {buCustom3Wulentener.WuClick();//关闭dismiss();}});tvCustom.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {dismiss();}});}private void updataUntrue() {if(strtvCustom!=null){tvCustom.setText(strtvCustom);}if(strtvMessage!=null){tvMessage.setText(strtvMessage);}if(strbuCustom3Tu!=null){buCustom3Tu.setText(strbuCustom3Tu);}if(strbuCustom3Wu!=null){buCustom3Wu.setText(strbuCustom3Wu);}}//接口吐槽public interface BuCustom3Tulentener{void TuClick();}private BuCustom3Tulentener buCustom3Tulentener;public BuCustom3Tulentener getBuCustom3Tulentener() {return buCustom3Tulentener;}public void setBuCustom3Tulentener(BuCustom3Tulentener buCustom3Tulentener) {this.buCustom3Tulentener = buCustom3Tulentener;}////接口五星public interface BuCustom3Wulentener{void WuClick();}private BuCustom3Wulentener buCustom3Wulentener;public BuCustom3Wulentener getBuCustom3Wulentener() {return buCustom3Wulentener;}public void setBuCustom3Wulentener(BuCustom3Wulentener buCustom3Wulentener) {this.buCustom3Wulentener = buCustom3Wulentener;}////关闭//set getpublic String getStrtvCustom() {return strtvCustom;}public void setStrtvCustom(String strtvCustom) {this.strtvCustom = strtvCustom;}public String getStrtvMessage() {return strtvMessage;}public void setStrtvMessage(String strtvMessage) {this.strtvMessage = strtvMessage;}public String getStrbuCustom3Tu() {return strbuCustom3Tu;}public void setStrbuCustom3Tu(String strbuCustom3Tu) {this.strbuCustom3Tu = strbuCustom3Tu;}public String getStrbuCustom3Wu() {return strbuCustom3Wu;}public void setStrbuCustom3Wu(String strbuCustom3Wu) {this.strbuCustom3Wu = strbuCustom3Wu;}}
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化控件buCustom3DialogBox = (Button) findViewById(R.id.bu_custom3_dialog_box);}//触发点击事件public void onClick(View view) {//判断点击的事件switch (view.getId()) {//普通对话框case R.id.bu_custom3_dialog_box://普通对话框方法custom3Method();break; }}//自定义对话框方法精良版private void custom3Method() {//创建自定义类对象Custom3Dialog custom3Dialog = new Custom3Dialog(this);//改变内容想要改变则填入想填入的内容/* custom3Dialog.setStrtvCustom("");custom3Dialog.setStrtvMessage("");custom3Dialog.setStrbuCustom3Tu("");custom3Dialog.setStrbuCustom3Wu("");*///创建对应的监听custom3Dialog.setBuCustom3Tulentener(new Custom3Dialog.BuCustom3Tulentener() {@Overridepublic void TuClick() {Toast.makeText(MainActivity.this, "请求你不要吐槽", Toast.LENGTH_SHORT).show();}});custom3Dialog.setBuCustom3Wulentener(new Custom3Dialog.BuCustom3Wulentener() {@Overridepublic void WuClick() {Toast.makeText(MainActivity.this, "谢谢您的五星好评", Toast.LENGTH_SHORT).show();}});//展示custom3Dialog.show();}

效果如下

Dialog常用对话框相关推荐

  1. android 继承dialog自定义对话框

    android  继承dialog自定义对话框 样式如下: 代码实现: 主要Activity: public class MainActivity extends Activity { Button ...

  2. wxWidgets:常用对话框演示

    wxWidgets:常用对话框演示 wxWidgets:常用对话框演示 dialogs.h dialogs.cpp wxWidgets:常用对话框演示 dialogs.h #ifndef __DIAL ...

  3. wxWidgets:常用对话框

    wxWidgets:常用对话框 wxWidgets:常用对话框 wxColourDialog 概述 MS Windows 颜色选择器 通用颜色选择器 例子 wxFontDialog 概述 MS Win ...

  4. 8.1 Android Basic 数据存储 Preferences Dialog(使用对话框的Preferences)

    <<PrefsDemo_Dialog.zip>> Dialog(使用对话框的Preferences) 新建项目 PrefsDemo_Dialog 编辑res/layout/ma ...

  5. EasyUi之Dialog(对话框窗口)

    Dialog(对话框窗口) Dialog(对话框窗口)+Window(窗口)+Panel(面板) Dialog属性 Dialog事件+方法 Window属性,事件,方法 Panel属性,事件,方法 案 ...

  6. android安卓之常用对话框设计AlertDialog

    android安卓之常用对话框设计AlertDialog 学习目的:掌握常用对话框中提示,单选,复选,自定义对话框的设计和使用. 布局文件 activity_main.xml <?xml ver ...

  7. easyUI——Dialog(对话框窗口)

    Dialog(对话框窗口) 1.概述 扩展自$.fn.window.defaults.使用$.fn.dialog.defaults重写默认值对象. 该对话框是一种特殊类型的窗口,它在顶部有一个工具栏, ...

  8. Android Dialog 普通对话框 单选对话框 多选对话框

    文章目录 1 Dialog介绍 2 AlertDialog对话框 2.1 主要方法 3 设置不同按钮 4 设置单选按钮 4.1 单选按钮方法 5 设置多选按钮 1 Dialog介绍 对话框是程序不用户 ...

  9. Android中五种常用对话框的使用

    场景 Android中常用的五种对话框为 常规对话框.带列表的对话框.自定义的对话框.带进度条的对话框.带日期选择器的对话框. 注: 博客: https://blog.csdn.net/badao_l ...

最新文章

  1. VC调用matlab中定义的.m文件中的函数的实例
  2. 数据告诉你,抖音是如何在半年之内逆袭的
  3. SpringBootAdmin服务端
  4. 条件变量 ---C++17 多线程
  5. Matlab--Monte Carlo simulation
  6. cisco 2960 VLAN MAC_Mac翻译系列软件推荐一:欧路词典 for Mac
  7. 三道简单算法题(二)
  8. 今日之“烧饼油条”!
  9. iOS自己实现二维码生成与扫描
  10. 关于GHO文件怎么安装,GHO文件怎么打开等问题解答
  11. 红帽linux 下qt 5.13.1 编译 mysql80驱动(内含升级gcc版本)
  12. Linux使用Aria2命令下载BT种子/磁力/直链文件
  13. The file Tomcat.exe was not found... Either the CATALINA_HOME environment variable is not defin
  14. 《c语言修炼内功之第二种境界(看代码就是内存)之关键字系列一》
  15. C语言基础操作-位段
  16. vscode中配置settting.json
  17. 点云地面滤波--一种改进的渐进式不规则三角网加密地面滤波算法
  18. GPU编程和流式多处理器(三)
  19. 数学建模的常用知识python
  20. 计算机版兰花草音乐,兰花草儿歌mp3

热门文章

  1. oracle数据库9i下载,Oracle9i下载地址
  2. 笨鸟先飞之Java---缠缠绵绵的注解和注释
  3. 天猫整站Springboot 从零开始搭建(一)
  4. 电解电容与固态电容全面对比分析
  5. 分布式链路监控与追踪系统(SpringCloud Sleuth + Zipkin)
  6. 【无人机】基于matlab蚁群算法求解含危险源的无人机路径规划【含Matlab源码 2059期】
  7. 机器人视觉识别系统研究
  8. go高效缓存框架教你实现
  9. 薛之谦演唱会十秒售空,本土商家是如何日入百万元
  10. java 微信昵称过滤表情