ProgressDialog 和 AlertDialog 有點類似,都可以在介面上彈出一個對話方塊,都能夠遮蔽 掉其他控制元件的互動能力。不同的是,ProgressDialog 會在對話方塊中顯示一個進度條,一般是 用於表示當前操作比較耗時,讓使用者耐心地等待。它的用法和 AlertDialog 也比較相似,修 改 MainActivity 中的程式碼,如下所示:
public class MainActivity extends Activity implements OnClickListener {
……
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
ProgressDialog progressDialog = new ProgressDialog
(MainActivity.this);
progressDialog.setTitle("This is ProgressDialog"); progressDialog.setMessage("Loading..."); progressDialog.setCancelable(true); progressDialog.show();
break;
default:
break;
}
}
}
可以看到,這裡也是先構建出一個 ProgressDialog 物件,然後同樣可以設定標題、內容、 可否取消等屬性,最後也是通過呼叫 show()方法將 ProgressDialog 顯示出來。重新執行程式, 點選按鈕後,效果如圖 3.14 所示。注意如果在 setCancelable()中傳入了 false,表示 ProgressDialog 是不能通過 Back 鍵取消 掉的,這時你就一定要在程式碼中做好控制,當資料載入完成後必須要呼叫 ProgressDialog 的 dismiss()方法來關閉對話方塊,否則 ProgressDialog 將會一直存在。
圖 3.14