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.OkClick04.,實際上需要三個事件對應三個按鈕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.}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.}msg box
沒有留言:
張貼留言