2010-07-24 35 views
8

Có ai vui lòng giải thích ngữ cảnh nào tôi nên sử dụng lớp AlertDialog.Builder? Tôi mới phát triển ứng dụng android và tôi thẳng thắn không hiểu ngữ cảnh nào để sử dụng khi nào?Tôi nên sử dụng ngữ cảnh nào trong AlertDialog.Builder?

Say, tôi muốn tạo một đối tượng cho lớp AlertDialog.Builder -

AlertDialog.Builder ab = new AlertDialog.Builder(); 
ab.setMessage("Test"); 

ab.show(); 

tôi nên sử dụng nó vào bối cảnh gì trong? Có khác gì nếu tôi sử dụng Hộp thoại thông báo onCreate hoặc OnClickListener hoặc trong trình xử lý của bất kỳ sự kiện nào như vậy?

Trả lời

4

Trong phiên bản đầu tiên của ứng dụng của tôi, tôi đã phạm sai lầm khi không sử dụng onCreateDialog và thay vào đó được xây dựng và hiển thị các hộp thoại. Nếu bạn tự mình làm, bạn phải chăm sóc những thứ như loại bỏ hộp thoại trước khi hoạt động kết thúc() nếu không thì cửa sổ sẽ bị rò rỉ.

Tôi sẽ ghi đè lênCreateDialog trong hoạt động của bạn và trả về ab.create() (không hiển thị()). onCreateDialog sau đó sẽ xử lý hiển thị hộp thoại và bạn sẽ chỉ cần gọi showDialog (id).

11

Bạn nên sử dụng ngữ cảnh của Hoạt động được thực thi từ đó. Nói cách khác, chỉ cần sử dụng YourNameOfActivity.this làm ngữ cảnh.

1
AlertDialog.Builder ab = new AlertDialog.Builder(this); 
ab.setMessage("Test") 
    .show; 

(hoặc) nếu u muốn (có, không) nút có nghĩa là sử dụng này

AlertDialog.Builder ab = new AlertDialog.Builder(this); 
ab.setMessage("Are you sure you want to exit?") 
    .setPositiveButton("Yes", dialogClickListener) 
    .setNegativeButton("No", dialogClickListener) 
    .show(); 
Các vấn đề liên quan