java-如何在Dialog上触发事件关闭Android?

java-如何在Dialog上触发事件关闭Android?,第1张

概述我有一个自定义对话框,它扩展了Dialog类,我想绑定一个事件以在用户按下设备的BACK按钮后关闭Dialog后执行一些代码.我怎样才能做到这一点?我找到了一篇帖子,其中有人说在使用Dialogs和其他Window小部件时应使用.addWindowListener().但是对话框类没有addWindowListener方法,所以我不

我有一个自定义对话框,它扩展了Dialog类,我想绑定一个事件以在用户按下设备的BACK按钮后关闭Dialog后执行一些代码.我怎样才能做到这一点?我找到了一篇帖子,其中有人说在使用Dialogs和其他Window小部件时应使用.adDWindowListener().但是对话框类没有adDWindowListener方法,所以我不能使用它.有没有不使用片段的另一种方法,因为我不应该重写MyCustomDialog类?

这是代码:

public class MyCustomDialog extends Dialog {public MyCustomDialog(Context context, int layoutResourceID) {    super(context);    requestwindowFeature(Window.FEATURE_NO_Title);    setContentVIEw(layoutResourceID);}}  

感谢您的关注!

编辑:我在androID开发人员站点上找到了这一点,有没有办法与MyCustomDialog类一起使用它?

onDismiss DialogInterface

解决方法:

由于要扩展androID Dialog类,因此可以在Activity的实例中实现Dismiss Listener并在创建Dialog时对其进行设置,然后在侦听器中实现所需的任何功能,具体取决于用来关闭Dialog的按钮.

希望这能解决您的问题.

编辑您可以使用dialog.setCanceledOntouchOutsIDe(false);如果您在对话框外部触摸,它将停止关闭对话框.

就像是,

  Dialog dialog = new Dialog(context)  dialog.setCanceledOntouchOutsIDe(false);

或者

覆盖对话框的ontouchEvent()并检查 *** 作类型.如果动作类型是
“ MotionEvent.ACTION_OUTSIDE”表示用户正在对话框区域之外进行交互.因此,在这种情况下,您可以取消对话框或决定要执行的 *** 作.
查看原图?

dialog.setontouchListener(new VIEw.OntouchListener(){    @OverrIDe    public boolean ontouch(VIEw v, MotionEvent event)      {         if(event.getAction() == MotionEvent.ACTION_OUTSIDE){              Toast.make(getApplicationContext(), "touched outsIDe the dialog", Toast.LENGTH_LONG).show();                 this.dismiss();         }         return false;      }});  

对于后按,您可以执行dialog.setCancelable(false);.这将防止对话框因backpress事件而取消.

或者,您也可以覆盖setonKeyListener事件,并将自己的代码放入其中.

编辑

dialog.setonKeyListener(new Dialog.OnKeyListener() {        @OverrIDe        public boolean onKey(DialogInterface arg0, int keyCode,                KeyEvent event) {            // Todo auto-generated method stub            if (keyCode == KeyEvent.KEYCODE_BACK) {                finish();                dialog.dismiss();            }            return true;        }    });

快乐编码!

总结

以上是内存溢出为你收集整理的java-如何在Dialog上触发事件关闭Android?全部内容,希望文章能够帮你解决java-如何在Dialog上触发事件关闭Android?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1088701.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存