AlertDialog的對話方塊模式

2021-07-11 17:45:46 字數 4000 閱讀 9025

我們之前都有經常使用alertdialog,平時比較常使用的是利用alertdialog直接建立帶按鈕的對話方塊,但是其實alertdialog非常強大,它不僅可以生成帶按鈕的提示框,還可以生成帶列表的列表對話方塊,概括起來有以下4種:

①確定、中立和取消等n個按鈕的提示對話方塊,其中的按鈕個數不是固定的,可以根據需要新增,例如,不需要中立按鈕,則可以生成只帶有確定和取消按鈕的對話方塊,也可以是只帶乙個按鈕的對話方塊。

②帶列表的列表對話方塊。

③帶多個單選列表項和n個按鈕的列表對話方塊。

④帶多個多選列表項和n個按鈕的列表對話方塊。

接下來來看看效果圖:

顯示帶列表的對話方塊:

顯示帶單選項列表的對話方塊:

顯示帶多選列表項的對話方塊:

其中第一種形式只需alertdialog類即可生成,後面三種需要alertdialog.builder類,其提供的常用方法有如下幾種:

方法描述

settitle(

charsequence title)

設定標題

seticon(

drawable icon)

通過drawable資源物件為對話方塊設定圖示

seticon(

drawable icon)

通過對資源id為對話方塊設定圖示

setmessage(

charsequence message)

用於為對話方塊設定要顯示的內容

.setpositivebutton(

charsequence text,

onclicklistener listener)

用於設定確定按鈕

setnegativebutton(

charsequence text,

onclicklistener listener)

用於設定取消按鈕

setneutralbutton(

charsequence text,

onclicklistener listener)

用於設定中立按鈕

setitems(

charsequence items,

onclicklistener listener)

為對話方塊新增列表項

setsinglechoiceitems(

charsequence items,

int checkeditem,

onclicklistener listener)

為對話方塊新增單選列表項

setmultichoiceitems(

charsequence items,

boolean checkeditems,

onmultichoiceclicklistener listener)

為對話方塊新增多選列表項

接下來不多說,直接來個**來實現看看吧!

package com.example.uidesign;

import android.annotation.suppresslint;

import android.content.dialoginte***ce;

import android.os.bundle;

import android.view.view;

import android.view.view.onclicklistener;

import android.widget.button;

import android.widget.toast;

@suppresslint("newapi")

public class mainactivity extends activity

});//新增「確定」按鈕

alertdialog.setbutton(dialoginte***ce.button_positive

, "確定", new dialoginte***ce.onclicklistener()

});//新增「中立」按鈕

alertdialog.setbutton(dialoginte***ce.button_neutral

, "中立", new dialoginte***ce.onclicklistener()

});alertdialog.show();

}});

//顯示帶列表的對話方塊

btn2.setonclicklistener(new onclicklistener() ;

builder builder=new alertdialog.builder(mainactivity.this);

builder.seticon(r.drawable.noti);

builder.settitle("請選擇你喜歡的運動");

builder.setitems(item, new dialoginte***ce.onclicklistener()

});builder.create().show(); //建立對話方塊並顯示

}});

//顯示帶單選項列表的對話方塊

btn3.setonclicklistener(new onclicklistener() ;

builder builder=new alertdialog.builder(mainactivity.this);

builder.seticon(r.drawable.noti);

builder.settitle("請選擇你喜歡的運動");

builder.setsinglechoiceitems(item, 0,new dialoginte***ce.onclicklistener()

});builder.setpositivebutton("確定", null); //新增確定按鈕

builder.create().show(); //建立對話方塊並顯示

}});

//顯示帶多選列表項的對話方塊

btn4.setonclicklistener(new onclicklistener() ;

//各列表項要顯示的內容

final string item=;

builder builder=new alertdialog.builder(mainactivity.this);

builder.seticon(r.drawable.noti);

builder.settitle("請選擇你喜歡的書型別:");

builder.setmultichoiceitems(item, checkeditem, new dialoginte***ce.onmultichoiceclicklistener()

});//為對話方塊新增"確定"按鈕

builder.setpositivebutton("確定", new dialoginte***ce.onclicklistener()

}//當resul不為空時,通過訊息提示框顯示選擇的結果

if (!"".equals(result))

}});

builder.create().show(); //建立對話方塊並顯示

}});

} public void init()

}

其中的xml**很簡單就不寫了。(ps:可能這些很多人寫過了,諸位大神們可以忽略不看,我是慢慢學習著來的。)

AlertDialog對話方塊

new alertdialog.builder static context setmessage str new message seticon r.drawable.icon settitle r.string.update handleimage hint setpositivebutton ...

AlertDialog對話方塊

alertdialog對話方塊的介紹 1 獲得alertdialog靜態內部類buidler物件,由該類來建立alertdialog物件,因為alertdialog的構造方法全部是protected型別 2 通過buidler物件設定對話方塊的標題 按鈕以及按鈕要響應的事件dialoginte ce...

對話方塊AlertDialog

alertdialog.builder對話方塊沒有類似finish 或者dismiss 這樣的方法。但是alertdialog.builder在.show 的時候會得到乙個alertdialog物件,alertdialog是alertdialog.builder的父類 我們就可以用dismiss方法...