Android Dialog,按下按钮时保持对话框打开 [英] Android Dialog, keep dialog open when button is pressed

查看:16
本文介绍了Android Dialog,按下按钮时保持对话框打开的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在按下按钮时保持对话框打开.目前它正在关闭.

I would like to keep my dialog open when I press a button. At the moment it's closing.

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setMessage("Are you sure you want to exit?")

   .setCancelable(false)
   .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
            MyActivity.this.finish();
       }
   })
   .setNegativeButton("No", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
       }
   });
AlertDialog alert = builder.create();

推荐答案

是的,你可以.你基本上需要:

Yes, you can. You basically need to:

  1. 使用 DialogBu​​ilder
  2. 创建对话框
  3. show() 对话框
  4. 在显示的对话框中找到按钮并覆盖它们的 onClickListener

所以,创建一个监听器类:

So, create a listener class:

class CustomListener implements View.OnClickListener {
  private final Dialog dialog;

  public CustomListener(Dialog dialog) {
    this.dialog = dialog;
  }

  @Override
  public void onClick(View v) {

    // Do whatever you want here

    // If you want to close the dialog, uncomment the line below
    //dialog.dismiss();
  }
}

然后在显示对话框时使用:

Then when showing the dialog use:

AlertDialog dialog = dialogBuilder.create();
dialog.show();
Button theButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
theButton.setOnClickListener(new CustomListener(dialog));

请记住,您需要显示对话框,否则将无法找到该按钮.此外,请务必将 DialogInterface.BUTTON_POSITIVE 更改为您用于添加按钮的任何值.另请注意,在 DialogBu​​ilder 中添加按钮时,您需要提供 onClickListeners - 但是,您不能在其中添加自定义侦听器 - 如果您在调用 show() 后不要覆盖监听器.

Remember, you need to show the dialog otherwise the button will not be findable. Also, be sure to change DialogInterface.BUTTON_POSITIVE to whatever value you used to add the button. Also note that when adding the buttons in the DialogBuilder you will need to provide onClickListeners - you can not add the custom listener in there, though - the dialog will still dismiss if you do not override the listeners after show() is called.

这篇关于Android Dialog,按下按钮时保持对话框打开的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆