AlertDialog的構造方法全部是Protected的,是以不能直接通過new一個AlertDialog來建立出一個AlertDialog。 要建立一個AlertDialog,就要用到AlertDialog.Builder中的create()方法。 使用AlertDialog.Builder建立對話框需要了解以下幾個方法:
setTitle :為對話框設定标題
setIcon :為對話框設定圖示
setMessage:為對話框設定内容
setView : 給對話框設定自定義樣式
setItems :設定對話框要顯示的一個list,一般用于顯示幾個指令時
setMultiChoiceItems :用來設定對話框顯示一系列的複選框 setNeutralButton :普通按鈕 setPositiveButton :給對話框添加"Yes"按鈕
setNegativeButton :對話框添加"No"按鈕
create : 建立對話框 show :顯示對話框 舉個例子: Dialog alertDialog = new AlertDialog.Builder(this). setTitle("對話框的标題").
setMessage("對話框的内容").
setIcon(R.drawable.ic_launcher).
create(); alertDialog.show();
類似ListView的AlertDialog 用setItems(CharSequence[] items, final OnClickListener listener)方法來實作類似ListView的AlertDialog 第一個參數是要顯示的資料的數組,第二個參數是點選某個item的觸發事件 .setItems(arrayFruit, new DialogInterface.OnClickListener() {}
類似RadioButton的AlertDialog 用setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)方法來實作類似RadioButton的AlertDialog 第一個參數是要顯示的資料的數組,第二個參數是初始值(初始被選中的item),第三個參數是點選某個item的觸發事件 在這個例子裡面我們設了一個selectedFruitIndex用來記住選中的item的index .setSingleChoiceItems(arrayFruit, 0, new DialogInterface.OnClickListener(){})
類似CheckBox的AlertDialog
用setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, final OnMultiChoiceClickListener listener)方法來實作類似CheckBox的AlertDialog 第一個參數是要顯示的資料的數組,第二個參數是選中狀态的數組,第三個參數是點選某個item的觸發事件 .setMultiChoiceItems(arrayFruit, arrayFruitSelected, new DialogInterface.OnMultiChoiceClickListener(){})
自定義View的AlertDialog 有時候我們不能滿足系統自帶的AlertDialog風格,就比如說我們要實作一個Login畫面,有使用者名和密碼,這時我們就要用到自定義View的AlertDialog 先建立Login畫面的布局檔案 然後在Activity裡面把Login畫面的布局檔案添加到AlertDialog上 // 取得自定義View LayoutInflater layoutInflater = LayoutInflater.from(this); View myLoginView = layoutInflater.inflate(R.layout.login, null);