Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭

AlertDialog.Builder builder = new Builder(this);

builder.create().show();

这样显示出来的对话框,当用户按返回键或搜索键时,这个对话框也能关闭。

怎样才能实现一个类似在windows系统上的对话框,必须点对话框上的按钮后,才能关闭这个对话框。

下面是具体代码:

AlertDialog.Builder builder = new Builder(this);
  builder.setMessage(msg);
  builder.setTitle(title);

  builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int which)
   {
    dialog.dismiss();

   }
  });

  AlertDialog alertDialog = builder.create();

  alertDialog.setCancelable(false);//设置这个对话框不能被用户按[返回键]而取消掉,但测试发现如果用户按了KeyEvent.KEYCODE_SEARCH,对话框还是会Dismiss掉
  //由于设置alertDialog.setCancelable(false); 发现如果用户按了KeyEvent.KEYCODE_SEARCH,对话框还是会Dismiss掉,这里的setOnKeyListener作用就是屏蔽用户按下KeyEvent.KEYCODE_SEARCH
  alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
   @Override
   public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event)
   {
   if (keyCode == KeyEvent.KEYCODE_SEARCH)
    {
     return true;
    }
    else
    {
     return false; //默认返回 false
    }
   }
  });

  alertDialog.show();

2012-01-03

原文地址:https://www.cnblogs.com/personnel/p/4583158.html