AlertDialog(對話方塊)
很像是Android 的 MessageBox ,不過其實他的功能比windows上的 MessageBox 還要強大,且動作上不太相同。
1.windows的 MessageBox 只能顯示訊息,可以設定按鈕數量,
Android 的 AlertDialog 可以顯示訊息,還可以顯示列表,甚至可以是一個xml
也就是說,可以在layout編輯器裡新增一個表單(XML),裡可以放文字物件,EDITTEXT物件,按鈕物件,然後於AlertDialog 上顯示出來,也可以是或是選單(單選,複選都可)。
2.Windows上的MessageBox 是"阻塞"特性,就是當MessageBox 沒有被按下確定或是取消按鈕,程式不會繼續往下執行。
Android 的 AlertDialog 只是單存的對話方塊跳出來,程式會繼續往下執行,這裡還需注意。
1.先來依個最簡單的 對話方塊(AlertDialog)
程式碼如下- private void ShowAlertDialog()
- {
- Builder MyAlertDialog = new AlertDialog.Builder(this);
- MyAlertDialog.setTitle("標題");
- MyAlertDialog.setMessage("我是內容");
- MyAlertDialog.show();
- }
複製代碼- 新增一個按鈕,加入可以更動訊息,讓這個對話方塊更好用
- 使用方法
- ShowMsgDialog("哈哈哈");
- private void ShowMsgDialog(String Msg)
- {
- Builder MyAlertDialog = new AlertDialog.Builder(this);
- MyAlertDialog.setTitle("標題");
- MyAlertDialog.setMessage(Msg);
- DialogInterface.OnClickListener OkClick = new DialogInterface.OnClickListener()
- {
- public void onClick(DialogInterface dialog, int which) {
- //如果不做任何事情 就會直接關閉 對話方塊
- }
- };;
- MyAlertDialog.setNeutralButton("中間按鈕",OkClick );
- MyAlertDialog.show();
- }
複製代碼- 然而按鈕可以分成左邊,中間,右邊 來使用,
- OkClick是按下時候處理的事件,因為示範所以只寫
- OkClick
- ,實際上需要三個事件對應三個按鈕
- //三個按鈕的對話方塊展示
- private void ShowAlertDialogAnd3Button()
- {
- Builder MyAlertDialog = new AlertDialog.Builder(this);
- MyAlertDialog.setTitle("標題");
- MyAlertDialog.setMessage("我是內容");
- //建立按下按鈕
- DialogInterface.OnClickListener OkClick = new DialogInterface.OnClickListener()
- {
- public void onClick(DialogInterface dialog, int which) {
- //如果不做任何事情 就會直接關閉 對話方塊
- }
- };
- MyAlertDialog.setPositiveButton("左邊按鈕",OkClick );
- MyAlertDialog.setNeutralButton("中間按鈕",OkClick );
- MyAlertDialog.setNegativeButton("右邊按鈕",OkClick );
- MyAlertDialog.show();
- }
複製代碼- 對話方塊還可以使用LIST選單,以下示範單選
- //有選單的對話方塊
- final String[] ListStr = {"Android","其實","很簡單","且","如果選擇項目太多","Android也會","自動的可以拖曳喔!~","真好用"};
-
- private void ShowAlertDialogAndList()
- {
- Builder MyAlertDialog = new AlertDialog.Builder(this);
- MyAlertDialog.setTitle("標題");
- //建立選擇的事件
- DialogInterface.OnClickListener ListClick = new DialogInterface.OnClickListener()
- {
- public void onClick(DialogInterface dialog, int which) {
- ShowMsgDialog(ListStr[which]);
- }
- };
- //建立按下取消什麼事情都不做的事件
- DialogInterface.OnClickListener OkClick = new DialogInterface.OnClickListener()
- {
- public void onClick(DialogInterface dialog, int which) {
- }
- };
- MyAlertDialog.setItems(ListStr, ListClick);
- MyAlertDialog.setNeutralButton("取消",OkClick );
- MyAlertDialog.show();
- }
複製代碼
項目太多自動生成可以拉動的選單。
轉帖於 http://toimy.blogspot.tw/2010/08/android-alertdialog.html
|