• 对话框AlertDialog的dismiss和cancel区别


    先上cancel方法源码和注解

      /**
         * Cancel the dialog.  This is essentially the same as calling {@link #dismiss()}, but it will
         * also call your {@link DialogInterface.OnCancelListener} (if registered).
         */
        public void cancel() {
            if (!mCanceled && mCancelMessage != null) {
                mCanceled = true;
                // Obtain a new message so this dialog can be re-used
                Message.obtain(mCancelMessage).sendToTarget();
            }
            dismiss();
        }

    注解的大意:cancel对话框,这个在本质上基本和disimss一样。但是cancel会执行DialogInterface.OnCancelListener监听,前提是有注册过。

    public void openDialog(View v){
            AlertDialog dialog ;
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("标题");
            builder.setMessage("dismiss和cancel的区别");
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });
            
            builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
                
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            
            dialog = builder.create();
            dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
                @Override
                public void onCancel(DialogInterface dialog) {
                    Toast.makeText(MainActivity.this, "setOnCancelListener", Toast.LENGTH_SHORT).show();
                }
            });
            dialog.show();
        }

    点击确定按钮后会执行DialogInterface.OnCancelListener();弹出Toast且关闭对话框。

  • 相关阅读:
    使用mybetis插件的公共方法进行查询
    bootstrap的刷新和查询
    消息队列的使用和注意事项
    MySQL 日期时间计算函数
    mysql基础学习网站
    html装换成字符串的工具、代码辅助工具
    正则校验数字,数字保留两位小数,字母,特殊符号和数字
    HTML表格和表单
    HTML标签
    媒体查询写法
  • 原文地址:https://www.cnblogs.com/datian/p/3895002.html
Copyright © 2020-2023  润新知