美文网首页
如何让AlertDialog 在点击确定不消失

如何让AlertDialog 在点击确定不消失

作者: 念念不忘_2016 | 来源:发表于2020-05-13 16:36 被阅读0次

    有时候我们会在AlertDialog 里面进行一些逻辑判断,当单击“确定“按钮时完成某些工作,如果这些工作失败,对话框不能关闭。而当成功完成工作后,则关闭对话框。但是系统默认是每次点击确定按钮或者取消按钮,dialog都会消失。原因分析的话这篇文章分析的非常好,我就不再累赘:http://blog.csdn.net/jdsjlzx/article/details/25288749,它里面也提供了些解决办法,比如利用反射或者自定义handler,但是感觉有点烦,于是我在stackoverflow上找到了一个更好的方法:

     final AlertDialog mDialog=new AlertDialog.Builder(this).setPositiveButton("确定", null).setNegativeButton("取消", null).create();
        mDialog.setOnShowListener(new DialogInterface.OnShowListener() {
            @Override
            public void onShow(DialogInterface dialog) {
                Button positionButton=mDialog.getButton(AlertDialog.BUTTON_POSITIVE);
                Button negativeButton=mDialog.getButton(AlertDialog.BUTTON_NEGATIVE);
                positionButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(MainActivity.this,"确定",Toast.LENGTH_SHORT).show();
                        mDialog.dismiss();
                    }
                });
                negativeButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(MainActivity.this,"取消",Toast.LENGTH_SHORT).show();
    
                    }
                });
            }
        });
    
        mDialog.show();
    

    嗯,这样子就可以自己控制dialog的显示和消失了,so easy。以上代码实现的是点击确定,dialog消失,点击取消,dialog不消失。
    转自https://blog.csdn.net/wanglaohushiwo/article/details/54316616

    相关文章

      网友评论

          本文标题:如何让AlertDialog 在点击确定不消失

          本文链接:https://www.haomeiwen.com/subject/vgtonhtx.html