Диалоговое окно не закрывается в Android

#android #dialog

#Android #диалоговое окно

Вопрос:

в моем приложении, когда я касаюсь окна редактирования, я открываю диалоговое окно, которое состоит из последовательности символов 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();
       }
     };
  

Пожалуйста, помогите мне, друзья……

Ответ №1:

Почему вы используете onTouchListener вместо onClickListener ?

Проблема в том, что когда вы щелкаете элемент в диалоговом окне списка, событие касания в диалоговом окне также запускается, что приводит к его повторному отображению.

Ответ №2:

используйте следующий код

   dialog.dismiss();