欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂淺談Android培訓(xùn)之六種不同對(duì)話(huà)框?qū)崿F(xiàn)源碼

2018-01-02 09:14:11 1575瀏覽

在開(kāi)發(fā)過(guò)程中,與用戶(hù)交互式免不了會(huì)用到對(duì)話(huà)框以實(shí)現(xiàn)更好的用戶(hù)體驗(yàn),所以掌握幾種對(duì)話(huà)框的實(shí)現(xiàn)方法還是非常有必要的。在看具體實(shí)例之前先對(duì)AlertDialog做一個(gè)簡(jiǎn)單介紹。AlertDialog是功能最豐富、實(shí)踐應(yīng)用最廣的對(duì)話(huà)框,它可以生成各種內(nèi)容的對(duì)話(huà)框。但實(shí)際上AlertDialog生成的對(duì)話(huà)框總體可分為以下4個(gè)區(qū)域:圖標(biāo)區(qū)、標(biāo)題區(qū)、內(nèi)容區(qū)、按鈕區(qū)。


扣丁學(xué)堂淺談Android培訓(xùn)之六種不同對(duì)話(huà)框?qū)崿F(xiàn)源碼



一般創(chuàng)建一個(gè)對(duì)話(huà)框需要經(jīng)過(guò)以下幾步:

1、創(chuàng)建AlertDialog.Builder對(duì)象。

2、調(diào)用AlertDialog.Builder的setTitle()或者setCustomTitle()方法設(shè)置標(biāo)題。

3、調(diào)用AlertDialog.Builder的setIcon()方法設(shè)置標(biāo)題logo。

4、調(diào)用AlertDialog.Builder的相關(guān)方法設(shè)置對(duì)話(huà)框內(nèi)容。

5、調(diào)用AlertDialog.Builder的setPositiveButton()、setNegativeButton()或setNeutralButton()方法添加多個(gè)按鈕。

6、調(diào)用AlertDialog.Builder的create()方法創(chuàng)建AlertDialog對(duì)象,再調(diào)用AlertDialog對(duì)象的show()方法將該對(duì)話(huà)框顯示出來(lái)。

其中,第4步設(shè)置對(duì)話(huà)框的內(nèi)容,這里有6種方法來(lái)指定:

·setMessage():設(shè)置對(duì)話(huà)框內(nèi)容為簡(jiǎn)單文本內(nèi)容。

·setItems():設(shè)置對(duì)話(huà)框內(nèi)容為簡(jiǎn)單列表項(xiàng)。

·setSingleChoiceItems():設(shè)置對(duì)話(huà)框內(nèi)容為單選列表項(xiàng)。

·setMultiChoiceItems():設(shè)置對(duì)話(huà)框內(nèi)容為多選列表項(xiàng)。

·setAdapter():設(shè)置對(duì)話(huà)框內(nèi)容為自定義列表項(xiàng)。

·setView():設(shè)置對(duì)話(huà)框內(nèi)容為自定義View。

下面通過(guò)幾個(gè)實(shí)例來(lái)介紹一下AlertDialog的用法。

1、顯示提示消息的對(duì)話(huà)框。

#FormatImgID_0#

/**

*顯示提示消息的對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*@parammessage對(duì)話(huà)框提示內(nèi)容

*@return

*/

publicAlertDialog.BuildersimpleDialog(finalContextcontext,Stringtitle,Stringmessage){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setMessage(message)

.setPositiveButton("完成",null)

.setNegativeButton("取消",null);

returnbuilder;

}

上面的代碼是將一個(gè)簡(jiǎn)單提示對(duì)話(huà)框封裝成了一個(gè)方法,調(diào)用時(shí)可以省去重復(fù)代碼,直接傳遞title,message等參數(shù)即可,其中該對(duì)話(huà)框用設(shè)置了icon,title等屬性,還調(diào)用了setPositiveButton()和setNegativeButton()方法添加按鈕,因?yàn)樵摲椒?simpleDialog())在這里僅提供調(diào)用,所以沒(méi)有實(shí)現(xiàn)按鈕的具體功能,可在實(shí)際調(diào)用中重寫(xiě)這兩個(gè)方法從而實(shí)現(xiàn)具體功能。

調(diào)用方式如下,其他幾種方式的對(duì)話(huà)框與此方法調(diào)用方式基本一致,以下就不再一一給出。

publicvoidonClickSimple(Viewv){

builder=newDialog().simpleDialog(this,"簡(jiǎn)單對(duì)話(huà)框","對(duì)話(huà)框內(nèi)容");

builder.setPositiveButton("確定",newOnClickListener(){

@Override

publicvoidonClick(DialogInterfacearg0,intarg1){

//確定

}

})

.setNegativeButton("取消",newOnClickListener(){

@Override

publicvoidonClick(DialogInterfacearg0,intarg1){

//取消

}

});

builder.create().show();

}

除此之外,AlertDialog.Builder還提供了setNeutralButton()方法來(lái)添加一個(gè)裝飾性的按鈕。因此Android的對(duì)話(huà)一共可以生成三個(gè)按鈕的對(duì)話(huà)框。

2、簡(jiǎn)單列表項(xiàng)對(duì)話(huà)框

#FormatImgID_1#

/**

*簡(jiǎn)單列表項(xiàng)對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*@paramitems對(duì)話(huà)框列表項(xiàng)CharSequence類(lèi)型數(shù)組,也可根據(jù)需要改成其他類(lèi)型

*@return

*/

publicAlertDialog.BuildersimpleListDialog(finalContextcontext,Stringtitle,finalCharSequence[]items){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setItems(items,newOnClickListener(){

@Override

publicvoidonClick(DialogInterfacedialog,intwhich){

Toast.makeText(context,"您選中了:"+items[which],Toast.LENGTH_SHORT).show();

}

});

returnbuilder;

}

上面的代碼通過(guò)調(diào)用setItems()方法為對(duì)話(huà)框設(shè)置了多個(gè)列表項(xiàng),其中setItems的第一個(gè)參數(shù)可以是Charsequence和int類(lèi)型。

3、單選列表項(xiàng)對(duì)話(huà)框

#FormatImgID_2#

/**

*單選列表項(xiàng)對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*@paramitems對(duì)話(huà)框列表項(xiàng)CharSequence類(lèi)型數(shù)組

*@return

*/

publicAlertDialog.BuildersimpleChoiceDialog(finalContextcontext,Stringtitle,finalCharSequence[]items){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

//第二個(gè)參數(shù)為默認(rèn)選中項(xiàng),0:代表默認(rèn)選中第一項(xiàng)

.setSingleChoiceItems(items,0,newOnClickListener(){

@Override

publicvoidonClick(DialogInterfacedialog,intwhich){

Toast.makeText(context,"您選中了:"+items[which],Toast.LENGTH_SHORT).show();

}

});

returnbuilder;

}

以上代碼通過(guò)調(diào)用setSingleChoiceItems()方法創(chuàng)建了帶單選列表的對(duì)話(huà)框。調(diào)用setSingleChoiceItems()方法時(shí)既可傳入數(shù)組作為參數(shù),也可傳入Cursor(相當(dāng)于數(shù)據(jù)庫(kù)查詢(xún)結(jié)果集)作為參數(shù),也可傳入ListAdapter作為參數(shù)。另外,如果傳入ListAdapter作為參數(shù),則由ListAdapter來(lái)提供多個(gè)列表項(xiàng)組件。

4、多選列表對(duì)話(huà)框

#FormatImgID_3#

/**

*多選列表項(xiàng)對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*@paramitems對(duì)話(huà)框列表項(xiàng)CharSequence類(lèi)型數(shù)組

*@paramchecked對(duì)話(huà)框初始選定狀態(tài)boolean類(lèi)型數(shù)組

*@return

*/

publicAlertDialog.BuildermultiChoiceDialog(finalContextcontext,Stringtitle,finalCharSequence[]items,finalboolean[]checked){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

//第二個(gè)參數(shù)為默認(rèn)選中項(xiàng),是一個(gè)boolean型的數(shù)組

.setMultiChoiceItems(items,checked,null)

.setPositiveButton("完成",null)

.setNegativeButton("取消",null);

returnbuilder;

}

以上代碼通過(guò)調(diào)用setMultiChoiceItems()方法創(chuàng)建了一個(gè)多選列表的對(duì)話(huà)框。在調(diào)用setMultiChoiceItems()時(shí)既可傳入數(shù)組作為參數(shù),也可傳入Cursor作為參數(shù)。需要注意的時(shí)在調(diào)用setMultiChoiceItems()方法添加多選列表時(shí),還需要傳入一個(gè)boolean[]參數(shù),該參數(shù)有兩個(gè)作用:①設(shè)置初始化時(shí)選中哪些列表項(xiàng)。②該boolean[]類(lèi)型的參數(shù)還可用于動(dòng)態(tài)的獲取多選列表項(xiàng)的選中狀態(tài)。

5、自定義列表項(xiàng)對(duì)話(huà)框

#FormatImgID_4#

/**

*自定義列表項(xiàng)對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*@paramitems對(duì)話(huà)框列表項(xiàng)String類(lèi)型數(shù)組,也可更具需要改成其他類(lèi)型

*@return

*/

publicAlertDialog.BuildercustomListDialog(finalContextcontext,Stringtitle,String[]items){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setAdapter(newArrayAdapter(context,R.layout.array_item,R.id.tv_item,items),null)

.setPositiveButton("完成",null)

.setNegativeButton("取消",null);

returnbuilder;

}

以上代碼通過(guò)setAdapter()設(shè)置了對(duì)話(huà)框的內(nèi)容,該方法需要傳入一個(gè)Adapter參數(shù),這樣的話(huà),就可以通過(guò)Adapter實(shí)現(xiàn)多個(gè)組件的繪制。其中setAdapter方法中調(diào)用的布局文件array_item.xml代碼如下:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/container"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

android:padding="10dp"

android:orientation="horizontal">

android:id="@+id/iv_img"

android:layout_width="30dp"

android:layout_height="30dp"

android:src="@drawable/ic_launcher"/>

android:id="@+id/tv_item"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_margin="10dp"

android:gravity="center"

android:text="列表項(xiàng)"/>

其實(shí),不僅setAdapter()方法可以接受Adapter作為參數(shù),setSingleChoice()方法也可以接受Adapter參數(shù),也就是說(shuō),使用setSingleChoice()方法也可以實(shí)現(xiàn)自定義列表項(xiàng)對(duì)話(huà)框。

6、自定義View的對(duì)話(huà)框

/**

*自定義View的對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*/

publicAlertDialog.BuildercustomeViewDialog(finalContextcontext,Stringtitle){

LinearLayoutloginDialog=(LinearLayout)LayoutInflater.from(context).inflate(R.layout.login_dialog,null);

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setView(loginDialog)

.setPositiveButton("完成",null)

.setNegativeButton("取消",null);

returnbuilder;

}

以上代碼通過(guò)setView()方法調(diào)用自定義的布局文件顯示界面。代碼中首先顯示裝載了login_dialog.xml文件,并返回該文件對(duì)應(yīng)的View,接下來(lái)程序調(diào)用了setView()方法來(lái)顯示View。

其中的login_dialog.xml文件代碼如下:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/container"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:padding="10dp"

android:orientation="vertical">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:id="@+id/tv_name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="用戶(hù)名:"/>

android:id="@+id/et_name"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:focusable="true"

android:hint="inputname"/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:id="@+id/tv_pwd"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="密碼:"/>

android:id="@+id/et_pwd"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="inputpassword"/>

最后想向大家強(qiáng)調(diào)一點(diǎn),學(xué)編程基礎(chǔ)一定要打牢,所有的概念和知識(shí)點(diǎn)必須理解透徹,解更多請(qǐng)關(guān)注扣丁學(xué)堂Android培訓(xùn)官網(wǎng)、微信公眾號(hào)平臺(tái),扣丁學(xué)堂Android視頻教程從零基礎(chǔ)到精通免費(fèi)試聽(tīng)試學(xué),就業(yè)終端服務(wù)系統(tǒng)隨時(shí)監(jiān)控學(xué)員的學(xué)習(xí)情況和效果,順利畢業(yè)后根據(jù)學(xué)員自身風(fēng)格和學(xué)習(xí)效果推薦就業(yè)。如果你想要學(xué)習(xí)Android開(kāi)發(fā)工程師技術(shù)就不要再猶豫了,喜歡就付諸行動(dòng)吧。
在開(kāi)發(fā)過(guò)程中,與用戶(hù)交互式免不了會(huì)用到對(duì)話(huà)框以實(shí)現(xiàn)更好的用戶(hù)體驗(yàn),所以掌握幾種對(duì)話(huà)框的實(shí)現(xiàn)方法還是非常有必要的。在看具體實(shí)例之前先對(duì)AlertDialog做一個(gè)簡(jiǎn)單介紹。AlertDialog是功能最豐富、實(shí)踐應(yīng)用最廣的對(duì)話(huà)框,它可以生成各種內(nèi)容的對(duì)話(huà)框。但實(shí)際上AlertDialog生成的對(duì)話(huà)框總體可分為以下4個(gè)區(qū)域:圖標(biāo)區(qū)、標(biāo)題區(qū)、內(nèi)容區(qū)、按鈕區(qū)。

一般創(chuàng)建一個(gè)對(duì)話(huà)框需要經(jīng)過(guò)以下幾步:

1、創(chuàng)建AlertDialog.Builder對(duì)象。

2、調(diào)用AlertDialog.Builder的setTitle()或者setCustomTitle()方法設(shè)置標(biāo)題。

3、調(diào)用AlertDialog.Builder的setIcon()方法設(shè)置標(biāo)題logo。

4、調(diào)用AlertDialog.Builder的相關(guān)方法設(shè)置對(duì)話(huà)框內(nèi)容。

5、調(diào)用AlertDialog.Builder的setPositiveButton()、setNegativeButton()或setNeutralButton()方法添加多個(gè)按鈕。

6、調(diào)用AlertDialog.Builder的create()方法創(chuàng)建AlertDialog對(duì)象,再調(diào)用AlertDialog對(duì)象的show()方法將該對(duì)話(huà)框顯示出來(lái)。

其中,第4步設(shè)置對(duì)話(huà)框的內(nèi)容,這里有6種方法來(lái)指定:

·setMessage():設(shè)置對(duì)話(huà)框內(nèi)容為簡(jiǎn)單文本內(nèi)容。

·setItems():設(shè)置對(duì)話(huà)框內(nèi)容為簡(jiǎn)單列表項(xiàng)。

·setSingleChoiceItems():設(shè)置對(duì)話(huà)框內(nèi)容為單選列表項(xiàng)。

·setMultiChoiceItems():設(shè)置對(duì)話(huà)框內(nèi)容為多選列表項(xiàng)。

·setAdapter():設(shè)置對(duì)話(huà)框內(nèi)容為自定義列表項(xiàng)。

·setView():設(shè)置對(duì)話(huà)框內(nèi)容為自定義View。

下面通過(guò)幾個(gè)實(shí)例來(lái)介紹一下AlertDialog的用法。

1、顯示提示消息的對(duì)話(huà)框。

#FormatImgID_0#

/**

*顯示提示消息的對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*@parammessage對(duì)話(huà)框提示內(nèi)容

*@return

*/

publicAlertDialog.BuildersimpleDialog(finalContextcontext,Stringtitle,Stringmessage){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setMessage(message)

.setPositiveButton("完成",null)

.setNegativeButton("取消",null);

returnbuilder;

}

上面的代碼是將一個(gè)簡(jiǎn)單提示對(duì)話(huà)框封裝成了一個(gè)方法,調(diào)用時(shí)可以省去重復(fù)代碼,直接傳遞title,message等參數(shù)即可,其中該對(duì)話(huà)框用設(shè)置了icon,title等屬性,還調(diào)用了setPositiveButton()和setNegativeButton()方法添加按鈕,因?yàn)樵摲椒?simpleDialog())在這里僅提供調(diào)用,所以沒(méi)有實(shí)現(xiàn)按鈕的具體功能,可在實(shí)際調(diào)用中重寫(xiě)這兩個(gè)方法從而實(shí)現(xiàn)具體功能。

調(diào)用方式如下,其他幾種方式的對(duì)話(huà)框與此方法調(diào)用方式基本一致,以下就不再一一給出。

publicvoidonClickSimple(Viewv){

builder=newDialog().simpleDialog(this,"簡(jiǎn)單對(duì)話(huà)框","對(duì)話(huà)框內(nèi)容");

builder.setPositiveButton("確定",newOnClickListener(){

@Override

publicvoidonClick(DialogInterfacearg0,intarg1){

//確定

}

})

.setNegativeButton("取消",newOnClickListener(){

@Override

publicvoidonClick(DialogInterfacearg0,intarg1){

//取消

}

});

builder.create().show();

}

除此之外,AlertDialog.Builder還提供了setNeutralButton()方法來(lái)添加一個(gè)裝飾性的按鈕。因此Android的對(duì)話(huà)一共可以生成三個(gè)按鈕的對(duì)話(huà)框。

2、簡(jiǎn)單列表項(xiàng)對(duì)話(huà)框

#FormatImgID_1#

/**

*簡(jiǎn)單列表項(xiàng)對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*@paramitems對(duì)話(huà)框列表項(xiàng)CharSequence類(lèi)型數(shù)組,也可根據(jù)需要改成其他類(lèi)型

*@return

*/

publicAlertDialog.BuildersimpleListDialog(finalContextcontext,Stringtitle,finalCharSequence[]items){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setItems(items,newOnClickListener(){

@Override

publicvoidonClick(DialogInterfacedialog,intwhich){

Toast.makeText(context,"您選中了:"+items[which],Toast.LENGTH_SHORT).show();

}

});

returnbuilder;

}

上面的代碼通過(guò)調(diào)用setItems()方法為對(duì)話(huà)框設(shè)置了多個(gè)列表項(xiàng),其中setItems的第一個(gè)參數(shù)可以是Charsequence和int類(lèi)型。

3、單選列表項(xiàng)對(duì)話(huà)框

#FormatImgID_2#

/**

*單選列表項(xiàng)對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*@paramitems對(duì)話(huà)框列表項(xiàng)CharSequence類(lèi)型數(shù)組

*@return

*/

publicAlertDialog.BuildersimpleChoiceDialog(finalContextcontext,Stringtitle,finalCharSequence[]items){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

//第二個(gè)參數(shù)為默認(rèn)選中項(xiàng),0:代表默認(rèn)選中第一項(xiàng)

.setSingleChoiceItems(items,0,newOnClickListener(){

@Override

publicvoidonClick(DialogInterfacedialog,intwhich){

Toast.makeText(context,"您選中了:"+items[which],Toast.LENGTH_SHORT).show();

}

});

returnbuilder;

}

以上代碼通過(guò)調(diào)用setSingleChoiceItems()方法創(chuàng)建了帶單選列表的對(duì)話(huà)框。調(diào)用setSingleChoiceItems()方法時(shí)既可傳入數(shù)組作為參數(shù),也可傳入Cursor(相當(dāng)于數(shù)據(jù)庫(kù)查詢(xún)結(jié)果集)作為參數(shù),也可傳入ListAdapter作為參數(shù)。另外,如果傳入ListAdapter作為參數(shù),則由ListAdapter來(lái)提供多個(gè)列表項(xiàng)組件。

4、多選列表對(duì)話(huà)框

#FormatImgID_3#

/**

*多選列表項(xiàng)對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*@paramitems對(duì)話(huà)框列表項(xiàng)CharSequence類(lèi)型數(shù)組

*@paramchecked對(duì)話(huà)框初始選定狀態(tài)boolean類(lèi)型數(shù)組

*@return

*/

publicAlertDialog.BuildermultiChoiceDialog(finalContextcontext,Stringtitle,finalCharSequence[]items,finalboolean[]checked){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

//第二個(gè)參數(shù)為默認(rèn)選中項(xiàng),是一個(gè)boolean型的數(shù)組

.setMultiChoiceItems(items,checked,null)

.setPositiveButton("完成",null)

.setNegativeButton("取消",null);

returnbuilder;

}

以上代碼通過(guò)調(diào)用setMultiChoiceItems()方法創(chuàng)建了一個(gè)多選列表的對(duì)話(huà)框。在調(diào)用setMultiChoiceItems()時(shí)既可傳入數(shù)組作為參數(shù),也可傳入Cursor作為參數(shù)。需要注意的時(shí)在調(diào)用setMultiChoiceItems()方法添加多選列表時(shí),還需要傳入一個(gè)boolean[]參數(shù),該參數(shù)有兩個(gè)作用:①設(shè)置初始化時(shí)選中哪些列表項(xiàng)。②該boolean[]類(lèi)型的參數(shù)還可用于動(dòng)態(tài)的獲取多選列表項(xiàng)的選中狀態(tài)。

5、自定義列表項(xiàng)對(duì)話(huà)框

#FormatImgID_4#

/**

*自定義列表項(xiàng)對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*@paramitems對(duì)話(huà)框列表項(xiàng)String類(lèi)型數(shù)組,也可更具需要改成其他類(lèi)型

*@return

*/

publicAlertDialog.BuildercustomListDialog(finalContextcontext,Stringtitle,String[]items){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setAdapter(newArrayAdapter(context,R.layout.array_item,R.id.tv_item,items),null)

.setPositiveButton("完成",null)

.setNegativeButton("取消",null);

returnbuilder;

}

以上代碼通過(guò)setAdapter()設(shè)置了對(duì)話(huà)框的內(nèi)容,該方法需要傳入一個(gè)Adapter參數(shù),這樣的話(huà),就可以通過(guò)Adapter實(shí)現(xiàn)多個(gè)組件的繪制。其中setAdapter方法中調(diào)用的布局文件array_item.xml代碼如下:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/container"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

android:padding="10dp"

android:orientation="horizontal">

android:id="@+id/iv_img"

android:layout_width="30dp"

android:layout_height="30dp"

android:src="@drawable/ic_launcher"/>

android:id="@+id/tv_item"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_margin="10dp"

android:gravity="center"

android:text="列表項(xiàng)"/>

其實(shí),不僅setAdapter()方法可以接受Adapter作為參數(shù),setSingleChoice()方法也可以接受Adapter參數(shù),也就是說(shuō),使用setSingleChoice()方法也可以實(shí)現(xiàn)自定義列表項(xiàng)對(duì)話(huà)框。

6、自定義View的對(duì)話(huà)框

/**

*自定義View的對(duì)話(huà)框

*@authorcodingblock2015-8-11

*@paramcontext上下文

*@paramtitle對(duì)話(huà)框標(biāo)題

*/

publicAlertDialog.BuildercustomeViewDialog(finalContextcontext,Stringtitle){

LinearLayoutloginDialog=(LinearLayout)LayoutInflater.from(context).inflate(R.layout.login_dialog,null);

AlertDialog.Builderbuilder=newAlertDialog.Builder(context)

.setTitle(title)

.setIcon(R.drawable.ic_launcher)

.setView(loginDialog)

.setPositiveButton("完成",null)

.setNegativeButton("取消",null);

returnbuilder;

}

以上代碼通過(guò)setView()方法調(diào)用自定義的布局文件顯示界面。代碼中首先顯示裝載了login_dialog.xml文件,并返回該文件對(duì)應(yīng)的View,接下來(lái)程序調(diào)用了setView()方法來(lái)顯示View。

其中的login_dialog.xml文件代碼如下:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/container"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:padding="10dp"

android:orientation="vertical">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:id="@+id/tv_name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="用戶(hù)名:"/>

android:id="@+id/et_name"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:focusable="true"

android:hint="inputname"/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

android:id="@+id/tv_pwd"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="密碼:"/>

android:id="@+id/et_pwd"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="inputpassword"/>

最后想向大家強(qiáng)調(diào)一點(diǎn),學(xué)編程基礎(chǔ)一定要打牢,所有的概念和知識(shí)點(diǎn)必須理解透徹,解更多請(qǐng)關(guān)注扣丁學(xué)堂Android培訓(xùn)官網(wǎng)、微信公眾號(hào)平臺(tái),扣丁學(xué)堂Android視頻教程從零基礎(chǔ)到精通免費(fèi)試聽(tīng)試學(xué),就業(yè)終端服務(wù)系統(tǒng)隨時(shí)監(jiān)控學(xué)員的學(xué)習(xí)情況和效果,順利畢業(yè)后根據(jù)學(xué)員自身風(fēng)格和學(xué)習(xí)效果推薦就業(yè)。如果你想要學(xué)習(xí)Android開(kāi)發(fā)工程師技術(shù)就不要再猶豫了,喜歡就付諸行動(dòng)吧。



扣丁學(xué)堂微信公眾號(hào)



【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】



查看更多關(guān)于“Android開(kāi)發(fā)技術(shù)的相關(guān)資訊>>

標(biāo)簽: Android開(kāi)發(fā)從入門(mén)到精通 Android學(xué)習(xí)路線(xiàn)圖 Android培訓(xùn) Android開(kāi)發(fā)工程師 Android視頻教程

熱門(mén)專(zhuān)區(qū)

暫無(wú)熱門(mén)資訊

課程推薦

微信
微博
15311698296

全國(guó)免費(fèi)咨詢(xún)熱線(xiàn)

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠(chéng)科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部