Android Dialog詳解

Android Dialog詳解  


Dialog是所有對話框的基類,但Dialog並非繼承自View,而是直接從Object構造出來的。Dialog調用是異步調用,所以showDialog()時不會阻礙UI線程。



1. Activity託管對話框:


Android提供了創建對話框的快捷方式,在Activity中可以通過如showDialog(int dialogId),dismissDialog(int dialogId),onCreateDialog(),onPrepareDialog(),removeDialog()等方法來創建和管理對話框。


onCreateDialog(int dialogId)和onPrepareDialog(int dialogId, Dialog dialog)是Dialog的2個回調函數,showDialog()觸發這兩個回調函數的調用。

同所有的onCreate()一樣,其只在Dialog第一次生成的時候纔會被調用,而onPrepareDialog()在每次執行showDialog()都會被調用(不管Dialog生成了沒有)。

如果你想要更新對話框的內容,你只要在onPrepareDialog()中作相應的工作就可以了,該方法會在對話框顯示之前進行調用。


dismissDialog()方法是用來關閉對話框的;removeDialog()方法用來將對話框從Activity的託管中移除

(如果對已經移除的對話框重新進行調用showDialog ,則該對話框將進行重新創建)。




2. 常用Dialog


(1)AlertDialog


AlertDialog類是Dialog類的子類,它默認提供了3個按鈕和一個文本消息,這些按鈕可以按需要來使他們顯示或隱藏。AlertDialog類中有一個內部靜態類,名爲“Builder”,Builder類提供了爲對話框添加多選或單選列表,以及爲這些列表添加事件處理的功能。另外,這個Builder類將AlertDialog對話框上的3個按鈕按照他們的位置分別稱呼爲:PositiveButton, NeutralButton, NegativeButton。


(2)ProgressDialog


ProgressDialog.dialog = new ProgressDialog(context); 沒有內部靜態類,直接構造函數構造



3. 一個很特別的Dialog(由Activity轉換而來) ,具體請參見參考doc中android.R.style部分


(1)AndroidManifest.xml中的activity的屬性中增加:android :theme="@android :style/Theme.Dialog( Activity的對話框主題)。可使Activity變爲Dialog(浮動窗口);


(2)AndroidManifest.xml中的activity的屬性中增加:android:theme="@android:style/Theme.Translucent"(Activity半透明主題);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章