Android AlertDialog

1、AlertDialog簡介:

AlertDialog的構造方法被聲明爲protected,因此不能直接使用new關鍵字來建立AlertDialog類的對象實例。要想建立AlertDialog對話框,須要使用Builder類,該類是AlertDialog類中定義的一個內嵌類。所以必須建立AlertDialog.Builder類的對象實例,而後再調用show()來顯示對話框。java

2、使用AlertDialog建立對話框的種類:

1. 最多帶3個按鈕的對話框:

    setPositiveButton(...)--確認、setNegativeButton(...)--取消、setNeutralButton(...)--忽略android

2.簡單列表對話框:

    經過AlertDialog.Builder類的setItems(...)方法能夠建立簡單的列表對話框。其實,這種類型的對話框至關於將ListView組件放在對話框上,而後再在ListView中添加若干簡單的文本。數組

3.單選列表對話框:

   經過AlertDialog.Builder類的setSingleChoiceItems(...)來建立。目前支持4種數據源(數組資源、數據集、字符串數組、ListAdapter)緩存

4.多選列表對話框:

    經過AlertDialog.Builder類的setMultiChoiceItems(...)建立。目前支持3種數據源(數組資源、數據集、字符串數組)佈局

5.水平進度或圓形對話框(默認是:圓形):

    該類型的對話框是經過ProgressDialog來實現,該類是AlertDialog的子類,它不須要用create()方法來返回實例對象,只須要new便可。ui

  ProgressDialog.STYLE_HORIZONTAL //水平進度樣式spa

  ProgressDialog.STYLE_SPINNER    //圓形樣式.net

6.自定義對話框:

    直接使用XML佈局文件或以編寫JAVA代碼方式來建立視圖,並將這些視圖對象添加到對話框中去。code

7.使用Activity託管對話框:

    Activity類中也提供了建立對話框的方式,有個onCreateDialog(int id)的方法,其返回類型是Dialog,經過是當調用Activity類的showDialog(int id)方法時,系統會調用該方法來返回一個Dialog對象。showDialog和onCreateDialog都有一個int類型的id參數,該參數值將傳遞給onCreateDialog方法。所以,咱們能夠利用不一樣的id建立多個對話框。對象

***注意***:對於表示某一個對話框的ID,系統只在第1次調用showDialog方法時調用onCreateDialog方法。在第1次建立Dialog對象時系統會將該對象保存在Activity的緩存裏,至關於一個Map對象,對話框的ID做爲Map的Key,而Dialog對象做爲Map的Value。下次再調用時,會先根據這個ID從Map中得到第1次建立的Dialog對象。除非該ID已經被刪除。

8.懸浮對話框和觸摸任何位置均可以關閉的對話框:

  1).懸浮對話框:android:theme="@android :style/Theme.Dialog";對於該類型的對話框,觸摸屏幕任何位置都會觸發Activity的OnTouchEvent事件。

  2).觸摸任何位置均可以關閉的對話框:首先必需要繼承AlertDialog類,並重寫OnTouchEvent事件。

9.Dialog設置Style

<style name="dialog" parent="@android:style/Theme.Dialog">
	<!-- 邊框 -->
	<item name="android:windowFrame">@null</item>
	<!-- 是否浮如今activity之上 -->
	<item name="android:windowIsFloating">true</item>
	<!-- 半透明 -->
	<item name="android:windowIsTranslucent">true</item>
	<!-- 無標題 -->
	<item name="android:windowNoTitle">true</item>
	<!-- 背景透明 -->
	<!-- <item name="android:windowBackground">@color/transparent</item> -->
	<item name="android:windowBackground">@drawable/icon_dialog_bg</item>
	<!-- 模糊 -->
	<item name="android:backgroundDimEnabled">true</item>
</style>

使用:

Dialog dialog = new Dialog(getActivity(), R.style.dialog);
相關文章
相關標籤/搜索