2013-08-08 3 views
21

Как закрыть диалоговое окно в андроиде программно, например, кнопкой?Как закрыть диалоговое окно в Android программно?

Представьте, что у меня есть диалоговое окно с кнопкой OK, и вы хотите закрыть его кнопкой OK, но я не могу этого сделать!

Я googled и не нашел ничего полезного, и почти все из них для закрытия AlertDialog не Диалог.

ответ

34

В диалоговом окне вы можете позвонить dismiss.

+0

спасибо :) thatsработало! Сожалею о моей глупой Q :) спасибо всем :) –

+0

я использовал .setPositiveButton ("КИ", новый DialogInterface.OnClickListener() { общественного недействительный OnClick (диалог DialogInterface, внутр который) {dismissDialog (DIALOG_Success); } }), но когда я снова показываю диаолог, диалог показывает старое сообщение. Я написал Activity.this.showDialog (DIALOG_Success, arg); можешь мне помочь? – Fatemeh

8

Это пример создания AlertDialog с 2 кнопками (OK и отмена). При нажатии на кнопку отмены,

dialog.dismiss()

называется, чтобы закрыть диалоговое окно.

Отовсюду снаружи, вы могли бы назвать

builder.dismiss();

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
      builder.setMessage("Some message.") 
        .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          // do something 
         } 
        }) 
        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          dialog.dismiss(); 
         } 
        }); 

      builder.show(); 
+1

нет такого метода, как builder.dismiss(); –

7
dialog.dismiss(); 

только эта линия не закроет его. :-)

Внесите это в onClickListener.

+1

нужно просто убрать метод() из класса диалога! спасибо Helmisek :) –

+0

Конечно, просто позвоните 'уволить()' метод DialogFragment –

4

Вы можете использовать методы cancel() или dismiss(). Метод cancel() по существу тот же самый, что и вызов функции увольнения(), но он также вызовет ваш DialogInterface.OnCancelListener (если он зарегистрирован).

1

Если у вас есть диалог, как отдельный вид деятельность, самый простой способ закрыть это назвать:

finish(); 

вызывает этот метод внутри класса OnClickListener, метод OnClick().

Это вызовет методы onPause(), onStop() и onDestroy() и убьет текущую активность - то же, что и кнопка «Назад».

Смежные вопросы