Dialog常用对话框
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常用对话框相关推荐
- android 继承dialog自定义对话框
android 继承dialog自定义对话框 样式如下: 代码实现: 主要Activity: public class MainActivity extends Activity { Button ...
- wxWidgets:常用对话框演示
wxWidgets:常用对话框演示 wxWidgets:常用对话框演示 dialogs.h dialogs.cpp wxWidgets:常用对话框演示 dialogs.h #ifndef __DIAL ...
- wxWidgets:常用对话框
wxWidgets:常用对话框 wxWidgets:常用对话框 wxColourDialog 概述 MS Windows 颜色选择器 通用颜色选择器 例子 wxFontDialog 概述 MS Win ...
- 8.1 Android Basic 数据存储 Preferences Dialog(使用对话框的Preferences)
<<PrefsDemo_Dialog.zip>> Dialog(使用对话框的Preferences) 新建项目 PrefsDemo_Dialog 编辑res/layout/ma ...
- EasyUi之Dialog(对话框窗口)
Dialog(对话框窗口) Dialog(对话框窗口)+Window(窗口)+Panel(面板) Dialog属性 Dialog事件+方法 Window属性,事件,方法 Panel属性,事件,方法 案 ...
- android安卓之常用对话框设计AlertDialog
android安卓之常用对话框设计AlertDialog 学习目的:掌握常用对话框中提示,单选,复选,自定义对话框的设计和使用. 布局文件 activity_main.xml <?xml ver ...
- easyUI——Dialog(对话框窗口)
Dialog(对话框窗口) 1.概述 扩展自$.fn.window.defaults.使用$.fn.dialog.defaults重写默认值对象. 该对话框是一种特殊类型的窗口,它在顶部有一个工具栏, ...
- Android Dialog 普通对话框 单选对话框 多选对话框
文章目录 1 Dialog介绍 2 AlertDialog对话框 2.1 主要方法 3 设置不同按钮 4 设置单选按钮 4.1 单选按钮方法 5 设置多选按钮 1 Dialog介绍 对话框是程序不用户 ...
- Android中五种常用对话框的使用
场景 Android中常用的五种对话框为 常规对话框.带列表的对话框.自定义的对话框.带进度条的对话框.带日期选择器的对话框. 注: 博客: https://blog.csdn.net/badao_l ...
最新文章
- VC调用matlab中定义的.m文件中的函数的实例
- 数据告诉你,抖音是如何在半年之内逆袭的
- SpringBootAdmin服务端
- 条件变量 ---C++17 多线程
- Matlab--Monte Carlo simulation
- cisco 2960 VLAN MAC_Mac翻译系列软件推荐一:欧路词典 for Mac
- 三道简单算法题(二)
- 今日之“烧饼油条”!
- iOS自己实现二维码生成与扫描
- 关于GHO文件怎么安装,GHO文件怎么打开等问题解答
- 红帽linux 下qt 5.13.1 编译 mysql80驱动(内含升级gcc版本)
- Linux使用Aria2命令下载BT种子/磁力/直链文件
- The file Tomcat.exe was not found... Either the CATALINA_HOME environment variable is not defin
- 《c语言修炼内功之第二种境界(看代码就是内存)之关键字系列一》
- C语言基础操作-位段
- vscode中配置settting.json
- 点云地面滤波--一种改进的渐进式不规则三角网加密地面滤波算法
- GPU编程和流式多处理器(三)
- 数学建模的常用知识python
- 计算机版兰花草音乐,兰花草儿歌mp3