看板 KnucklesNote
作者 Knuckles (站長 那克斯)
標題 [AndroidStudio] 使用載入中對話框 ProgressDialog
時間 2016-02-28 Sun. 13:15:02
若網路比較慢的話,在等待下載資料的時候畫面會像卡住了一樣
需要顯示個「載入中」的提示訊息
在頁面的 Activity 類別加上成員變數
ProgressDialog mLoadingDialog;
加上兩個成員函式
private void showLoadingDialog(){
if(mLoadingDialog==null){
mLoadingDialog = new ProgressDialog(this);
mLoadingDialog.setMessage("載入中...");
}
mLoadingDialog.show();
}
private void dismissLoadingDialog(){
if(mLoadingDialog!=null) {
mLoadingDialog.dismiss();
}
}
在下載資料的程式開始前,執行
showLoadingDialog();
顯示「載入中」的提示訊息
在下載資料的程式結束時,執行
dismissLoadingDialog();
關閉「載入中」的提示訊息
執行結果,在下載資料完成前的畫面
在載入完成之前,點擊圖示以外的灰色區域也可以關閉圖示
若不希望圖示被點擊關閉的話,可使用
mLoadingDialog.setCancelable(false);
□ 問題解決記錄
在 mLoadingDialog.dismiss(); 這行出現錯誤訊息 View not attached to window manager
解決方法,參考
http://stackoverflow.com/questions/22924825/view-not-attached-to-window-manager-crash
可能是在對話框尚未關閉時按了Home鍵跳出,導致對話框要關閉時找不到連結的Activity
要在 Activity 結束前手動關閉對話框
@Override
protected void onDestroy() {
dismissLoadingDialog();
super.onDestroy();
}
--
--
※ 作者: Knuckles 時間: 2016-02-28 13:15:02
※ 編輯: Knuckles 時間: 2016-02-28 13:28:21