2013-08-08 54 views
21

Làm cách nào để đóng một Hộp thoại trong Android theo trình tự, ví dụ bằng một nút?Cách đóng Hộp thoại trong Android theo lập trình?

Hãy tưởng tượng tôi có Hộp thoại có nút OK trên đó và muốn đóng bằng nút OK, nhưng tôi không thể làm điều đó!

Tôi googled và thấy không có gì hữu ích, và hầu như tất cả chúng để đóng AlertDialog không phải là một Dialog.

Trả lời

34

Bạn có thể gọi dismiss trên hộp thoại.

+0

cảm ơn bạn :) thats đã làm việc! xin lỗi về ngớ ngẩn của tôi Q :) cảm ơn tất cả :) –

+0

Tôi đã sử dụng .setPositiveButton ("ok", mới DialogInterface.OnClickListener() { void công khai onClick (hộp thoại DialogInterface, int) {dismissDialog (DIALOG_Success); } }) nhưng khi tôi hiển thị diaolog một lần nữa, hộp thoại cho thấy tin nhắn cũ.Tôi đã viết Activity.this.showDialog (DIALOG_Success, arg); Bạn có thể giúp tôi được không? – Fatemeh

8

Đây là ví dụ về cách tạo một AlertDialog với 2 nút (OK và hủy). Khi nhấp vào nút hủy,

dialog.dismiss()

được gọi để đóng hộp thoại.

Từ bất cứ nơi nào bên ngoài, bạn có thể gọi

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

không có phương thức như builder.dismiss(); –

7
dialog.dismiss(); 

Chỉ dòng này sẽ đóng nó lại. :-)

Triển khai nó trong onClickListener.

+1

nó chỉ cần bỏ qua() phương pháp từ bên trong của lớp hộp thoại! Cảm ơn bạn Helmisek :) –

+0

Chắc chắn chỉ cần gọi phương thức 'dismiss()' của DialogFragment –

1

Nếu bạn có Dialog của bạn như là một hành động riêng biệt, cách đơn giản nhất để đóng nó lại là để gọi:

finish(); 

Gọi phương pháp này bên trong lớp OnClickListener, phương pháp onClick().

Điều này sẽ gọi phương thức onPause(), onStop() và onDestroy() do đó và hủy hoạt động hiện tại - giống như nút 'Quay lại'.