簡(jiǎn)析Android多種AlertDialog對(duì)話框效果
android提供了四類常用的對(duì)話框,本文分享具體實(shí)現(xiàn)方法:
- 1.AlertDialog,功能最豐富,實(shí)際運(yùn)用最廣泛
- 2.progressDialog,進(jìn)度條對(duì)話框
- 3.DatePickerDialog,日期選擇對(duì)話框
- 4.TimePickerDialog,時(shí)間選擇對(duì)話框
這里主要介紹第一種,剩下的三種都是第一種的子類,所以其方法,都可以直接使用.
創(chuàng)建一個(gè)對(duì)話框一般需要下面幾個(gè)步驟
- 1.創(chuàng)建AlertDialog.Builder對(duì)象
- 2.對(duì)AlertDialog.Builder通過(guò)SetTitle來(lái)設(shè)置標(biāo)題,SetIcon來(lái)設(shè)置圖標(biāo)
- 3.調(diào)用AlertDialog.Builder相關(guān)方法來(lái)設(shè)置內(nèi)容
- 4.調(diào)用setPositiveButton或者setBegativeButton設(shè)置確定和取消按鈕,其中還一個(gè)裝飾性按鈕,就不介紹了
- 5.調(diào)用AlertDialog.Builder的create方法進(jìn)行創(chuàng)建,再調(diào)用AlertDialog的show方法即可顯示出來(lái).
下面根據(jù)實(shí)例一起來(lái)看看具體用法
1、簡(jiǎn)單文本對(duì)話框
定義一個(gè)Button為其添加點(diǎn)擊事件,從而啟動(dòng)AlertDialog對(duì)話框,并添加監(jiān)聽(tīng)事件
public void simpledialog1(View view){ AlertDialog.Builder builder = new AlertDialog.Builder(this) //設(shè)置對(duì)話框標(biāo)題 .setTitle("簡(jiǎn)單文本對(duì)話框") //設(shè)置圖標(biāo) .setIcon(R.mipmap.ic_launcher) //設(shè)置為簡(jiǎn)單文本對(duì)話框 .setMessage("這是一個(gè)簡(jiǎn)單文本對(duì)話框"); //設(shè)置兩個(gè)按鈕 builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"你點(diǎn)擊了確認(rèn)",Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了取消", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }
2、列表項(xiàng)對(duì)話框
和上面的文本對(duì)話框不同,列表像是通過(guò)一個(gè)數(shù)組來(lái)顯示列表
public void simpledialog2(View view){ //列表項(xiàng)需要傳入一個(gè)數(shù)組用于顯示列表 final String items[] = {"java","php","android","ios"}; AlertDialog.Builder builder = new AlertDialog.Builder(this) //設(shè)置對(duì)話框標(biāo)題 .setTitle("簡(jiǎn)單列表項(xiàng)對(duì)話框") //設(shè)置圖標(biāo) .setIcon(R.mipmap.ic_launcher) //設(shè)置為簡(jiǎn)單列表項(xiàng)對(duì)話框 .setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了" + items[which], Toast.LENGTH_SHORT).show(); } }); //設(shè)置兩個(gè)按鈕 builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"你點(diǎn)擊了確認(rèn)",Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了取消", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }
3、單選項(xiàng)對(duì)話框
和列表項(xiàng)差不多,但是功能足足強(qiáng)了好多,因?yàn)閭魅氲膮?shù)可以為數(shù)組,也可以是Cursor的查詢結(jié)果集,還可以使ListAdapter
public void simpledialog3(View view){ //列表項(xiàng)需要傳入一個(gè)數(shù)組用于顯示列表 final String items[] = {"java","php","android","ios"}; AlertDialog.Builder builder = new AlertDialog.Builder(this) //設(shè)置對(duì)話框標(biāo)題 .setTitle("簡(jiǎn)單列表項(xiàng)對(duì)話框") //設(shè)置圖標(biāo) .setIcon(R.mipmap.ic_launcher) //設(shè)置為簡(jiǎn)單單選列表項(xiàng)對(duì)話框,1表示默認(rèn)選擇第二個(gè) .setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了" + items[which], Toast.LENGTH_SHORT).show(); } }); //設(shè)置兩個(gè)按鈕 builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"你點(diǎn)擊了確認(rèn)",Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了取消", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }
4、多選項(xiàng)對(duì)話框
多選和單選差不多,就多了個(gè)Boolean的數(shù)組來(lái)控制初始選擇值
public void simpledialog4(View view){ //列表項(xiàng)需要傳入一個(gè)數(shù)組用于顯示列表 final String items[] = {"java","php","android","ios"}; AlertDialog.Builder builder = new AlertDialog.Builder(this) //設(shè)置對(duì)話框標(biāo)題 .setTitle("簡(jiǎn)單列表項(xiàng)對(duì)話框") //設(shè)置圖標(biāo) .setIcon(R.mipmap.ic_launcher) //設(shè)置為簡(jiǎn)單多選列表項(xiàng)對(duì)話框,boolean型變量表示初始選擇的位置 .setMultiChoiceItems(items, new boolean[]{false, false, false, true}, null); //設(shè)置兩個(gè)按鈕 builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"你點(diǎn)擊了確認(rèn)",Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你點(diǎn)擊了取消", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }
另外還可以使用SetAdapter方法制作自定義列表項(xiàng)的對(duì)話框,或者使用SetView來(lái)制作自定義View的對(duì)話框。
以后的實(shí)例中會(huì)逐漸都應(yīng)用到的,希望大家繼續(xù)關(guān)注。
相關(guān)文章
ListView實(shí)現(xiàn)頂部和底部?jī)?nèi)容指示器的方法
這篇文章主要介紹了ListView實(shí)現(xiàn)頂部和底部?jī)?nèi)容指示器的方法,需要的朋友可以參考下2015-09-09淺析Flutter AbsorbPointer 與 IgnorePointer的區(qū)別
Flutter是Google一個(gè)新的用于構(gòu)建跨平臺(tái)的手機(jī)App的SDK。這篇文章主要介紹了Flutter AbsorbPointer 與 IgnorePointer的區(qū)別,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04一鍵移除ButterKnife并替換為ViewBinding的舊項(xiàng)目拯救
這篇文章主要為大家介紹了一鍵移除ButterKnife并替換為ViewBinding的舊項(xiàng)目拯救詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Android中的TimePickerView(時(shí)間選擇器)的用法詳解
這篇文章主要介紹了Android中的TimePickerView時(shí)間選擇器的用法,這是一個(gè)第三方從底部彈出來(lái)的日期選擇器,文中結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04在Android設(shè)備上搭建Web服務(wù)器的方法
本篇文章主要介紹了在Android設(shè)備上搭建Web服務(wù)器的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04android的got表HOOK實(shí)現(xiàn)代碼
對(duì)于android的so文件的hook根據(jù)ELF文件特性分為:Got表hook、Sym表hook和inline hook等。今天通過(guò)本文給大家介紹android HOOK實(shí)現(xiàn)got表的實(shí)例代碼,需要的朋友參考下吧2021-08-08Android實(shí)現(xiàn)朋友圈點(diǎn)贊列表
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)朋友圈點(diǎn)贊列表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11Android中兩個(gè)類讓你再也不用實(shí)現(xiàn)onActivityResult()
這篇文章主要給大家介紹了關(guān)于Android中兩個(gè)類讓你再也不用實(shí)現(xiàn)onActivityResult()的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-08-08