AlertDialog教学

50 篇文章 0 订阅

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. }






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. }


項目太多自動生成可以拉動的選單。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值