[Android] AlertDialog使用方法筆記
前言
在開發Android APP時,AlertDialog是個簡單又常見的功能。但卻有些小地方需要注意,以避免程式出現非預期的動作或發生錯誤導致APP被強制終止。
在本篇筆記中,先簡單地介紹一個AlertDialog的製作方法,然後討論幾個常見的問題。
成果圖
程式碼
問題
例如在按下按鈕後出現AlertDialog的使用場合中,
若程式設計不佳,對按鈕連按時,會造成多個AlertDialog出現在螢幕上造成混亂。
因此建議用個變數來紀錄與控制AlertDialog,在顯示AlertDialog前先確認是否已經顯示。
2. Android AlertDialog box WindowManager$BadTokenException problem!!
此錯誤常見於生成builder時所傳遞的參數發生問題。
參數用 this,getApplicationContext()的例子很容易見到卻也常常造成錯誤,因此還是明確指定較佳。
3. Unable to add window, is your activity running!!
很明顯地,此錯誤發生在要顯示AlertDialog時,Activity已經被刪除的狀況。
考慮到使用Thread或Async Task的場合,例如某個非UI Thread執行結束後要顯示AlertDialog,但生成該AlertDialog的Activity已經被換掉,這樣的話問題就來了。
結語
AlertDialog雖然好用,但一些意外狀況也要好好掌握,在顯示前做確認是必須工作。
不只顯示前要做確認,建議消除AlertDialog也最好做確認。
不只顯示前要做確認,建議消除AlertDialog也最好做確認。
留言
張貼留言