2012-03-18 39 views
5

Tôi đang chuyển đổi ứng dụng Android của mình để sử dụng các đoạn. Trước đây, tôi đã có một hoạt động mà bây giờ là một mảnh. Do đó, mã này không còn có thể được sử dụng:Hiển thị hộp thoại xác nhận trong Fragment

showDialog(CONFIRM_ID); 
// ... 
@Override 
public Dialog onCreateDialog(int id) { 
    // Create the confirmation dialog... 
} 

Từ bên trong đối tượng Fragment, tôi cần phải hiển thị một hộp thoại xác nhận sau khi xác nhận ném tôi trở lại các đối tượng để cập nhật trạng thái.

Ví dụ:

  1. Mảnh bên trong X.
  2. Hiển thị hộp thoại xác nhận.
  3. Nếu giao diện người dùng cập nhật "có" cho X.

Làm cách nào để thực hiện điều này? Vui lòng cung cấp mã mẫu làm việc.

Trả lời

9

Bạn chỉ có thể tạo ra các hộp thoại của bạn (AlertDialog) sử dụng mã như ở đây: http://developer.android.com/guide/topics/ui/dialogs.html#AlertDialog

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setMessage("Are you sure you want to exit?") 
     .setCancelable(false) 
     .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       MyActivity.this.finish(); 
      } 
     }) 
     .setNegativeButton("No", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       dialog.cancel(); 
      } 
     }); 
AlertDialog alert = builder.create(); 
alert.show(); 

Nếu bạn cần để tạo ra các hộp thoại với các nút mà không ngay lập tức bỏ qua hộp thoại riêng của mình, bạn có thể xem câu trả lời của tôi ở đây : How to prevent a dialog from closing when a button is clicked

+0

Cảm ơn. Điều này sẽ đủ! (Nhưng tôi nghi ngờ giải pháp tốt nhất là sử dụng 'DialogFragment' và bằng cách nào đó tuyên truyền kết quả trở lại đoạn ban đầu.) – l33t

0
  AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());  
     builder.setTitle("Your Title"); 
     builder.setMessage("Your Dialog Message"); 
     builder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
        //TODO 
        dialog.dismiss(); 
      } 
     }); 
     builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
        //TODO 
        dialog.dismiss(); 
      } 
     }); 
     AlertDialog dialog = builder.create(); 
     dialog.show(); 
Các vấn đề liên quan