目录
一、概述
二、常见对话框
(一)提示对话框
(二)进度对话框
补充
1、内容参考自B站安卓相关视频以及网络。
2、内容如果有不对的,希望可以指出或者补充。
3、新知识。
4、主要是测试用法,之后再补充完善。
一、概述
对话框(Dialog):也是程序与用户交互的一种方式,通常用于显示当前程序提示信息以及相关说明,以小窗口形式展现(弹出)。
主要分为以下几类:
AlertDialog :警告对话框(提示对话框)。
ProgressDialog:进度对话框。
DatePickerDialog:日期选择对话框。
TimerPickerDialog:时间选择对话框。
自定义对话框。
二、常见对话框
对话框基本可以分为三部分,标题,内容,以及确认取消按钮。
都是在MainActivity.java文件中测试的。
(一)提示对话框
1、普通对话框
① 编写代码如下。
注:setPositiveButton一般用于确定按钮,setNegativeButton一般用于取消按钮。
//普通对话框
AlertDialog dialog = new AlertDialog.Builder(this)
//弹出框的标题
.setTitle("这是一个普通对话框")
//提示的内容信息
.setMessage("是否退出")
//标题的图标
.setIcon(R.mipmap.ic_launcher)
//添加确认、取消按钮+提示信息
.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//提示信息
Toast.makeText(MainActivity.this, "已退出",
Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "已取消",
Toast.LENGTH_SHORT).show();
}
})
.create();//确定创建
dialog.show();//显示对话框
② 效果如下。
20210112145822208.gif
2、单选对话框
这里的内容部分就是单选按钮了,所以不可以再设置setMessage,否则会将选项给覆盖掉。
① 编写代码如下。
//单选对话框
AlertDialog dialog2 = new AlertDialog.Builder(this)
.setTitle("请选择您的性别")
.setIcon(R.mipmap.ic_launcher)
.setPositiveButton("确定",null)
//checkedItem值为0则是默认选中第一个按钮
.setSingleChoiceItems(new String[]{"男", "女"}, -1,null)
.create();
dialog2.show();
② 效果如下。
20210112151937847.png
3、多选对话框
① 编写代码如下。
//多选对话框
AlertDialog dialog3 = new AlertDialog.Builder(this)
.setTitle("请选择您喜欢的猫咪品种")
.setIcon(R.mipmap.title)
.setPositiveButton("确定",null)
.setMultiChoiceItems(new String[]{"布偶猫", "缅因猫", "波斯猫", "挪威森林猫"},null, null)
.create();
dialog3.show();
② 效果如下。
20210112151140324.png
(二)进度对话框
① 编写代码如下。
//进度条对话框
ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setTitle("这是一个进度条对话框");
progressDialog.setIcon(R.mipmap.ic_launcher);
progressDialog.setMessage("正在加载猫咪资源中,请稍等");
//进度条的样式(系统提供) 默认是个圆圈
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.show();
② 效果如下。
2021011215092234.png
补充
1.改变对话框大小
LayoutParams lp = dialog.getWindow().getAttributes();
lp.width = XXX;
lp.height = xxx;想咋改就咋改
2.取消对话框标题
首先在 values/Style.xml文件中加入以下代码(如果没有该文件就创建一个XML名为Style.xml)
<!--重写系统弹出Dialog -->
< style name = "myDialogTheme" parent = "android:Theme.Dialog" >
< item name = "android:windowFrame" >@null</ item >
< item name = "android:windowIsFloating" >true</ item >
< item name = "android:windowIsTranslucent" >false</ item >
< item name = "android:windowNoTitle" >true</ item > <!--除去title-->
< item name = "android:windowContentOverlay" >@null</ item >
< item name = "android:backgroundDimEnabled" >false</ item >
< item name = "android:windowBackground" >@null</ item > <!--除去背景色-->
</ style >
去掉背景色边框也就去掉了,在你的层中设置背景色就可以了
第二步在AndroidManifest.xml中在你注册activity中加入android:theme="@style/myDialogTheme" 这个名就是上面的样式名称
<activity android:name=".LoginDialog" android:theme="@style/myDialogTheme" android:screenOrientation="portrait"/>
弹出层方法
Intent intent=new Intent(Detail_Goods.this,LoginDialog.class);
startActivity(intent);
网友评论