安卓基础学习 Day06 |对话框

2021-02-27  本文已影响0人  Y__W

目录
一、概述
二、常见对话框
(一)提示对话框
(二)进度对话框
补充
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);

上一篇 下一篇

猜你喜欢

热点阅读