素材巴巴 > 程序开发 >

详解Dialog(含自定义dialog)

程序开发 2023-09-09 18:36:03

详解Dialog

  • Method 2 实例化AlertDialog
  • 测试结果
  • 自定义对话框
  • 标准Dialog

    Method 1 构建AlertDialog.Builder

    Step 1 实例化一个Builder
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
     
    Step2 设置对话框样式 [标题、提示语句、按钮等]
    builder.setTitle("提示");
     builder.setMessage("你确定要退出吗?");
     builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {finish();}
     });
     builder.setNegativeButton("取消",null);
     
    Step 3 展示
                    //展示方式1:builder.show();//展示方式2:
     //                AlertDialog alertDialog = builder.create();
     //                alertDialog.show();
     

    Method 2 实例化AlertDialog

    这种方式不是很常用,因为setbutton里面没有positive 和negative之分,写在了一个方法里,仅供参考

    public  void  showNormaDialoy(){AlertDialog dialog = new AlertDialog.Builder(this).create();dialog.setTitle("提示");dialog.setMessage("你确定要退出吗?");//注意此处没有setPositiveButton()以及setNegativeButton()方法dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {finish();}});dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.show();
     }
     

    测试结果

    在这里插入图片描述

    自定义对话框

    Step 1 设计自定义对话框样式——dialog_layout.xml
    
     
     
    Step 2 设置style ——去标题栏 /去背景
    
     
    Step 3 将dialog_layout.xml应用到当前自定义对话框

    创建MyDialog类

    public class MyDialog extends Dialog {//用第二个构造方法,以便于传入自己设计的stylepublic MyDialog(@NonNull Context context, int themeResId) {super(context, themeResId);setContentView(R.layout.dialog_layout);...}
     }
     
    Step 4 实例化对话框并展示

    MainActivity.java文件中

    //参数1:环境上下文;参数2:创建的style
     MyDialog myDialog = new MyDialog(this,R.style.mydialog);
     myDialog.show();
     
    Step 5 添加点击事件
        public MyDialog(@NonNull Context context, int themeResId) {super(context, themeResId);setContentView(R.layout.dialog_layout);Button yes_button = findViewById(R.id.yes_btn);Button no_button = findViewById(R.id.no_btn);yes_button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//Dialog中没有finish()方法System.exit(0);}});no_button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//对话框消失dismiss();}});}
     }
     
    测试结果

    在这里插入图片描述


    标签:

    上一篇: 如何应用Nginx Rewrit实现网页跳转 下一篇:
    素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。