看板 KnucklesNote
作者 標題 [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();
}
}
if(mLoadingDialog==null){
mLoadingDialog = new ProgressDialog(this);
mLoadingDialog.setMessage("載入中...");
}
mLoadingDialog.show();
}
private void dismissLoadingDialog(){
if(mLoadingDialog!=null) {
mLoadingDialog.dismiss();
}
}
在下載資料的程式開始前,執行
showLoadingDialog();
顯示「載入中」的提示訊息在下載資料的程式結束時,執行
dismissLoadingDialog();
關閉「載入中」的提示訊息執行結果,在下載資料完成前的畫面
![[圖]](http://i.imgur.com/41DJEmq.png)
在載入完成之前,點擊圖示以外的灰色區域也可以關閉圖示
若不希望圖示被點擊關閉的話,可使用
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();
}
protected void onDestroy() {
dismissLoadingDialog();
super.onDestroy();
}
--
※ 作者: Knuckles 時間: 2016-02-28 13:15:02
※ 編輯: Knuckles 時間: 2016-02-28 13:28:21
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 282
回列表(←)
分享