对话框不会在android中被解雇

时间:2011-06-11 04:43:50

标签: android dialog

在我的应用程序中,当我触摸一个编辑框时,我打开一个对话框,其中包含一个3字符序列作为完整格式,年份格式和取消。当我选择其中一个时,另一个对话框会被打开。

当第二个对话框被打开时,我希望第一个对话框被自动解除或取消,但它没有发生.....以下是我的代码的一部分

 private OnTouchListener bdListener = new View.OnTouchListener()
     {
          @Override
          public boolean onTouch(View v, MotionEvent event) 
          {
              DOBalert();
              return isexists;
          }
          private void DOBalert()
          {
            Builder DOBbuilder = new AlertDialog.Builder(RestingSpotAdd.this);
            DOBbuilder.setTitle("Date of Birth");
            final CharSequence[] items = {"YearFormat", "FullFormat","Cancel"};
            DOBbuilder.setItems(items, new DialogInterface.OnClickListener() 
            {
               public void onClick(DialogInterface dialog, int item) 
               {
                  int i = item;
                  if(i==0)
                  {
                        dialog.dismiss();
                        yearFormat();
                  }
                  else if(i==1)
                  { 
                      dialog.cancel();
                      fullFormat();
                  }
                  else if(i==2)
                  {
                      cancel();  
                  }
               }
               public void yearFormat()
               {
                   showDialog(YEARSELECTOR_ID);
               }
               public void fullFormat()
               {
                   showDialog(DATEYEARMONTHSELECTOR_ID);
               }
         });
         AlertDialog DOBalert = DOBbuilder.create();
         DOBalert.show();
       }
     };

请帮帮我朋友......

2 个答案:

答案 0 :(得分:3)

为什么使用onTouchListener代替onClickListener

问题是,当您单击列表对话框中的某个项目时,对话框的触摸事件也会被触发,导致它再次显示。

答案 1 :(得分:0)

使用以下代码

  dialog.dismiss();