2011-09-06 36 views
6

Nếu tôi yêu cầu một tiến bộ hộp thoại như thế này trong Hoạt động chính của tôi sau đó nó sẽ được hiển thị như mong đợi:SetProgressBarIndeterminateVisibility thiếu hiểu biết

  requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
    setProgressBarIndeterminateVisibility(true); 

Nhưng nếu tôi đặt tầm nhìn là "false", và sau đó thiết lập lại nó để " đúng "bên trong thủ tục được gọi mà tôi muốn triển khai nó, không có gì được hiển thị. Di chuyển requestWindowTính năng làm thủ tục gây ra một ngoại lệ. Làm thế nào tôi nên làm điều này?

Trả lời

9

Bạn chỉ cần gọi requestWindowFeature() chỉ một lần, trong onCreate(), trước khi bạn gọi setContentView(). Sau đó, bạn có thể sử dụng setProgressBarIndeterminateVisibility(true|false) để hiển thị hoặc ẩn chỉ báo tiến trình từ bất kỳ nơi nào trong hoạt động (miễn là nó nằm trên chuỗi giao diện người dùng, tất nhiên).

+0

Tôi chưa khai báo chủ đề khác, proc A được gọi từ hoạt động onCreate proc và proc B đang cố sử dụng chỉ báo tiến trình được gọi là "onClick" từ proc A. Công việc này có nên không? – SirHowy

+0

Miễn là bạn không cố gắng gọi 'requestWindowFeature()' hai lần, vâng. –

+0

Sử dụng nó ?: 'setProgressBarIndeterminateVisibility (true); thử { \t \t spage = CustomHttpClient.myHttpGet (sURL); \t} bắt (Ngoại lệ e) { \t \t Toast.makeText (getBaseContext(), "không truy cập được trang web", Toast.LENGTH_SHORT) .show(); \t \t e.printStackTrace(); \t} setProgressBarIndeterminateVisibility (false); ' – SirHowy

Các vấn đề liên quan