对话框在按下按钮时不会触发解雇侦听器

千亿

我想向用户显示一个“确定”取消对话框,我想知道是否使用“确定”,“取消”,或者他是否选择通过单击屏幕上的其他位置或按“后退”按钮来关闭该对话框。

    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    final EditText input = new EditText(MainActivity.this);
    builder.setView(input);
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface dialog, int which)
        {
            // ok stuff
        }
    });
    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface dialog, int which)
        {
            // cancel stuff
        }
    });
    builder.setOnDismissListener(new DialogInterface.OnDismissListener()
    {
        @Override
        public void onDismiss(DialogInterface dialog)
        {
            //dismiss stuff
        }
    });
    builder.show();

这里的问题是,每当用户按下ok按钮时,关闭监听器就会立即触发。如果用户按下按钮,有没有办法不触发关闭监听器?

我确实意识到我可以使用布尔值标志,但是我希望实际上有一个优雅的解决方案。

我不是在寻找如何防止对话框被解雇的解决方案。我正在寻找有关如何防止按下确定按钮并关闭对话框时触发解雇侦听器的解决方案。

维卡斯迪普·辛格(Vikasdeep Singh)

出于任何原因都会调用setOnDismissListener()这意味着如果由于确定/取消按钮按下或屏幕触摸或返回按钮或主页按钮按下而导致对话框从屏幕上消失,setOnDismissListener()则会被调用。

设置由于某种原因关闭对话框时将调用的回调。

如果您希望在所有情况下都忽略对话框,而不仅仅是取消对话框,请参阅setOnDismissListener

因此,解决您所提到的问题,请使用一些布尔标志进行检查并进行处理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在对话框中设置按钮侦听器

单击对话框警报按钮时将值设置为 listview(多个 onclick 侦听器)

当重定向调用在按钮单击事件中时,使用 JQuery 对话框在确认时重定向

SWT / JFace对话框中的“确定”按钮选择侦听器出错

如何在jquery的sweetalert对话框中为html按钮添加事件侦听器

android将recyclerview项目位置传递给对话框按钮侦听器

使用自定义对话框类时如何修改文本并单击侦听器?

对话框上的Java侦听器关闭

Android对话框中的VideoView完成侦听器

自定义对话框的侦听器null

Android:关闭包含侦听器的对话框

蓝牙设备按钮按下应在应用程序中触发Onclick侦听器

当前一个兄弟有 z-index 时,单击侦听器不会触发

仅在按住按钮时显示对话框片段

防止在按下逃生按钮时关闭“角度材质对话框”,但在单击背景幕时允许关闭

IBM MQ侦听器服务-不会触发onMessage

Dart:流上的侦听器永远不会触发 onError 函数

按下Jmenu按钮时,使用Java的动作侦听器退出程序

当用户按下“后退”按钮或做出新的意图时,停止位置侦听器活动

Android Webview不会从按钮侦听器加载网址

创建事件侦听器时,函数会立即触发

使用GoogleMaps onMarkerClickListener时是否可以忽略某些标记,因此甚至不会触发点击侦听器?

Xamarin 命令不会在按钮单击时触发

有没有一种方法可以将onclick侦听器设置为USSD对话框按钮?

代号一-对话框的事件侦听器可在外部关闭/取消/轻按

带有警报对话框的表中的侦听器

Android-在对话框上的侦听器上更新TextView

如何在“自定义”对话框中添加广播组选中的侦听器

Swift-如何添加事件侦听器以取消电子邮件对话框?