2012-03-22 10 views
32

Witam Mam do czynienia z problemem na ICS jak dialog jest dismissed po kliknięciu poza okno dialog, z powodu którego pojawia się problem, jak nie otrzymuję żadnego potwierdzenia od użytkownika .android 4.0 Dialog zostaje anulowany po dotknięciu poza oknem dialogowym

Proszę o pomoc.

+6

Z jakiegoś powodu zaczynając od ICS th ey uczynił domyślne ustawienie 'setCanceledOnTouchOutside()' na 'true'. Zmiana nie wydaje się być udokumentowana nigdzie (bez zaskoczenia). Po prostu wyjaśnienie dla każdego, kto czyta. –

Odpowiedz

55

Sprawdź w witrynie Android dla programistów pod adresem this method.

Spróbuj użyć metody setCanceledOnTouchOutside (boolean anuluj) i przeprowadź wartość binarną, aby włączyć/wyłączyć zachowanie okna dialogowego po dotknięciu poza oknem dialogowym.

Również przejść przez te linki:

Android click event outside a dialog

How to cancel an Dialog themed like Activity when touched outside the window?

Mam nadzieję, że odpowiedzi na swoje pytanie.

+0

dziękuję to działało i te linki też były przydatne .. – nishi

+0

Domyślnie powinno być fałszywe, spowodowało to wiele problemów dla moich użytkowników. – Arad

12

Można użyć

dialog.setCancelable(true/false); 

LUB

dialog.setCanceledOnTouchOutside(true/false); 

Do najnowszych vesrions Androida;

Spowoduje to wyłączenie zdarzenia OutSideTouching.

+1

Tak, ale możemy, ale to będzie wyłączać anulowanie okna dialogowego na klawiaturze z powrotem naciśnij .. wiele razy nie chcesz, aby okno dialogowe ur zostało anulowane po dotknięciu na zewnątrz, ale chcesz obsługiwać zdarzenia naciśnięcia klawisza wstecz dla okna dialogowego .. – nishi

+0

Tak, jesteś prawy @nishi. Więc zredagowałem swoją odpowiedź i dodałem nową opcję setCancelOnTouchOutSide (T/F) event: P – Amt87

0
dialog.setCancelable(false) 

Dialog nie może anulować kiedy dotykowy z boku lub prasie BACK klucz

dialog.setCanceledOnTouchOutside(false) 

Dialog nie może anulowane po dotknięciu poza ale stanie do anulowania kiedy prasa BACK klucz

Powiązane problemy