2013-08-08 11 views
21

Jak zamknąć programowo w programie Android na przykład za pomocą przycisku?Jak programowo zamknąć okno dialogowe w systemie Android?

Wyobraź sobie, że mam okno dialogowe z przyciskiem OK i chcę je zamknąć przyciskiem OK, ale nie mogę tego zrobić!

Przeszukałem go i nie znalazłem niczego użytecznego, a prawie wszystkie z nich do zamknięcia AlertDialog, a nie okna dialogowego.

Odpowiedz

34

Możesz wywołać dismiss w oknie dialogowym.

+0

dziękuję :) to działało! Przepraszam za moje głupie Q :) Dzięki wszystkim :) –

+0

użyłem .setPositiveButton ("OK", nowy DialogInterface.OnClickListener() {public void onClick (okno DialogInterface, int które) {DismissDialog (DIALOG_Success); }} ), ale kiedy ponownie pokazuję diaolog, okno dialogowe pokazuje starą wiadomość. Napisałem Activity.this.showDialog (DIALOG_Success, arg); możesz mi pomóc? – Fatemeh

8

Oto przykład, jak utworzyć AlertDialog z 2 przyciskami (OK i anuluj). Po kliknięciu przycisku Anuluj

dialog.dismiss()

nazywa, aby zamknąć okno dialogowe.

Od nigdzie na zewnątrz, można nazwać

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

nie ma takiej metody, jak builder.dismiss(); –

7
dialog.dismiss(); 

Tylko ta linia będzie go zamknąć. :-)

Zaimplementuj go w onClickListener.

+1

potrzebuje tylko metody dismiss() z wnętrza klasy dialogowej! dziękuję Helmisek :) –

+0

Oczywiście po prostu wywołaj metodę 'dismiss() 'DialogFragment –

1

Jeśli masz swój Dialog jako odrębnej działalności, najprostszym sposobem, aby zamknąć to nazwać:

finish(); 

wywołanie tej metody wewnątrz klasy OnClickListener, metody onClick().

Spowoduje to wywołanie metod onPause(), onStop() i onDestroy() i zabicie bieżącego działania - tak samo jak przycisk "Wstecz".

Powiązane problemy