AlertDialog教学

来源:互联网 发布:iphone进水数据恢复 编辑:程序博客网 时间:2024/05/17 08:21

Android AlertDialog 教學(上)









AlertDialog(對話方塊)
很像是Android 的 MessageBox ,不過其實他的功能比windows上的 MessageBox 還要強大,且動作上不太相同。

1.windows的 MessageBox 只能顯示訊息,可以設定按鈕數量,
Android 的 AlertDialog 可以顯示訊息,還可以顯示列表,甚至可以是一個xml
也就是說,可以在layout編輯器裡新增一個表單(XML),裡可以放文字物件,EDITTEXT物件,按鈕物件,然後於AlertDialog 上顯示出來,也可以是或是選單(單選,複選都可)。

2.Windows上的MessageBox 是"阻塞"特性,就是當MessageBox 沒有被按下確定或是取消按鈕,程式不會繼續往下執行。
Android 的 AlertDialog 只是單存的對話方塊跳出來,程式會繼續往下執行,這裡還需注意。


1.先來依個最簡單的 對話方塊(AlertDialog)
程式碼如下
1.private void ShowAlertDialog()
2.{
3.Builder MyAlertDialog = new AlertDialog.Builder(this);
4.MyAlertDialog.setTitle("標題");
5.MyAlertDialog.setMessage("我是內容");
6.MyAlertDialog.show();
7.}




01.新增一個按鈕,加入可以更動訊息,讓這個對話方塊更好用
02.使用方法
03.ShowMsgDialog("哈哈哈");
04. 
05. 
06.private void ShowMsgDialog(String Msg)
07.{
08.Builder MyAlertDialog = new AlertDialog.Builder(this);
09.MyAlertDialog.setTitle("標題");
10.MyAlertDialog.setMessage(Msg);
11.DialogInterface.OnClickListener OkClick = new DialogInterface.OnClickListener()
12.{
13.public void onClick(DialogInterface dialog, int which) {
14.//如果不做任何事情 就會直接關閉 對話方塊
15.}
16.};;
17.MyAlertDialog.setNeutralButton("中間按鈕",OkClick );
18.MyAlertDialog.show();
19.}





01.然而按鈕可以分成左邊,中間,右邊 來使用,
02.OkClick是按下時候處理的事件,因為示範所以只寫
03.OkClick
04.,實際上需要三個事件對應三個按鈕
05. 
06. 
07.//三個按鈕的對話方塊展示
08.private void ShowAlertDialogAnd3Button()
09.{
10.Builder MyAlertDialog = new AlertDialog.Builder(this);
11.MyAlertDialog.setTitle("標題");
12.MyAlertDialog.setMessage("我是內容");
13.//建立按下按鈕
14.DialogInterface.OnClickListener OkClick = new DialogInterface.OnClickListener()
15.{
16.public void onClick(DialogInterface dialog, int which) {
17.//如果不做任何事情 就會直接關閉 對話方塊
18.}
19.};
20.MyAlertDialog.setPositiveButton("左邊按鈕",OkClick );
21.MyAlertDialog.setNeutralButton("中間按鈕",OkClick );
22.MyAlertDialog.setNegativeButton("右邊按鈕",OkClick );
23.MyAlertDialog.show();
24.}






view sourceprint?
01.對話方塊還可以使用LIST選單,以下示範單選
02.//有選單的對話方塊
03.final String[] ListStr = {"Android","其實","很簡單","且","如果選擇項目太多","Android也會","自動的可以拖曳喔!~","真好用"};
04. 
05.private void ShowAlertDialogAndList()
06.{
07. 
08.Builder MyAlertDialog = new AlertDialog.Builder(this);
09.MyAlertDialog.setTitle("標題");
10.//建立選擇的事件
11.DialogInterface.OnClickListener ListClick = new DialogInterface.OnClickListener()
12.{
13.public void onClick(DialogInterface dialog, int which) {
14.ShowMsgDialog(ListStr[which]);
15. 
16.}
17.};
18.//建立按下取消什麼事情都不做的事件
19.DialogInterface.OnClickListener OkClick = new DialogInterface.OnClickListener()
20.{
21.public void onClick(DialogInterface dialog, int which) {
22.}
23.}; 
24.MyAlertDialog.setItems(ListStr, ListClick);
25.MyAlertDialog.setNeutralButton("取消",OkClick );
26.MyAlertDialog.show();
27.}


項目太多自動生成可以拉動的選單。