[Android] AlertDialog使用方法筆記

[Android] AlertDialog使用方法筆記

前言


在開發Android APP時,AlertDialog是個簡單又常見的功能。但卻有些小地方需要注意,以避免程式出現非預期的動作或發生錯誤導致APP被強制終止。
在本篇筆記中,先簡單地介紹一個AlertDialog的製作方法,然後討論幾個常見的問題。

成果圖




程式碼



問題


1. 避免重複出現多個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也最好做確認。

留言