安卓频道

Android软件开发之盘点所有Dialog对话框大合集

发表于2015-06-27 09:53:38| 次阅读|来源 | 0评论| 收藏

摘要:对话框大合集今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。1 确定取消对话框对话框中有2个按钮 通过调用

对话框大合集
今天我用自己写的一个Demo 和大家详细介绍一个Android中的对话框的使用技巧。

 
 

 

1.确定取消对话框

对话框中有2个按钮   通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。

  


我们使用AlerDialog 创建对话框
  1. AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);       
复制代码
使用builder设置对话框的title button icon 等等
  1.             builder.setIcon(R.drawable.icon);
  2.             builder.setTitle("你确定要离开吗?");
  3.             builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
  4.                 public void onClick(DialogInterface dialog, int whichButton) {
  5.                     //这里添加点击确定后的逻辑
  6.                     showDialog("你选择了确定");
  7.                 }
  8.             });
  9.             builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
  10.                 public void onClick(DialogInterface dialog, int whichButton) {
  11.                     //这里添加点击确定后的逻辑
  12.                     showDialog("你选择了取消");
  13.                 }
  14.             });
  15.             builder.create().show();
  16.  
复制代码
这个dialog用于现实onClick后监听的内容信息
  1.     private void showDialog(String str) {
  2.          new AlertDialog.Builder(MainDialog.this)
  3.          .setMessage(str)
  4.          .show();
  5.     }
复制代码
2.多个按钮信息框

  

 
 

  1.           
  2. AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);                    
  3. builder.setIcon(R.drawable.icon);
  4. builder.setTitle("投票");
  5. builder.setMessage("您认为什么样的内容能吸引您?");
  6. builder.setPositiveButton("有趣味的", new DialogInterface.OnClickListener() {
  7. public void onClick(DialogInterface dialog, int whichButton) {
  8.                     showDialog("你选择了有趣味的");
  9.                 }
  10.             });
  11. builder.setNeutralButton("有思想的", new DialogInterface.OnClickListener() {
  12.                 public void onClick(DialogInterface dialog, int whichButton) {
  13.                     showDialog("你选择了有思想的");                    
  14.                 }
  15.             });
  16. builder.setNegativeButton("主题强的", new DialogInterface.OnClickListener() {
  17.                 public void onClick(DialogInterface dialog, int whichButton) {
  18.                     showDialog("你选择了主题强的");  
  19.                 }
  20.             });
  21.  builder.create().show();
  22.  
3.列表框

  

这个数组用于列表选择
  1. final String[] mItems = {"item0","item1","itme2","item3","itme4","item5","item6"};
  1. AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);       
  2. builder.setTitle("列表选择框");
  3. builder.setItems(mItems, new DialogInterface.OnClickListener() {
  4. public void onClick(DialogInterface dialog, int which) {
  5.                     //点击后弹出窗口选择了第几项
  6.                     showDialog("你选择的id为" + which + " , " + mItems[which]);
  7.                 }
  8.             });
  9. builder.create().show();
  10.  
4.单项选择列表框

  

 
 


mSingleChoice 用于记录单选中的ID
  1. int mSingleChoiceID = -1;
  1. AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);       
  2. mSingleChoiceID = -1;
  3. builder.setIcon(R.drawable.icon);
  4. builder.setTitle("单项选择");
  5. builder.setSingleChoiceItems(mItems, 0, new DialogInterface.OnClickListener() {
  6. public void onClick(DialogInterface dialog, int whichButton) {
  7.                  mSingleChoiceID = whichButton;
  8.                  showDialog("你选择的id为" + whichButton + " , " + mItems[whichButton]);
  9.                  }
  10.              });
  11. builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
  12.       public void onClick(DialogInterface dialog, int whichButton) {
  13.                      if(mSingleChoiceID > 0) {
  14.                      showDialog("你选择的是" + mSingleChoiceID);
  15.                      }
  16.                  }
  17.              });
  18. builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
  19.                  public void onClick(DialogInterface dialog, int whichButton) {
  20.  
  21.                  }
  22.              });
  23.  builder.create().show();
  24.  
5.进度条框

  


点击进度条框按钮后 开启一个线程计算读取的进度 假设读取结束为 100
Progress在小于100的时候一直在线程中做循环++ 只到读取结束后,停止线程。
  1.  mProgressDialog = new ProgressDialog(MainDialog.this);
  2. mProgressDialog.setIcon(R.drawable.icon);
  3. mProgressDialog.setTitle("进度条窗口");
  4. mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
  5. mProgressDialog.setMax(MAX_PROGRESS);
  6.  mProgressDialog.setButton("确定", new DialogInterface.OnClickListener() {
  7.                         public void onClick(DialogInterface dialog, int whichButton) {
  8.                             //这里添加点击后的逻辑
  9.                         }
  10.                     });
  11. mProgressDialog.setButton2("取消", new DialogInterface.OnClickListener() {
  12.           public void onClick(DialogInterface dialog, int whichButton) {
  13.                             //这里添加点击后的逻辑
  14.                         }
  15.                     });
  16.                     mProgressDialog.show();
  17.                     new Thread(this).start();
  18.  
  19. public void run() {
  20.         int Progress = 0;
  21.         while(Progress < MAX_PROGRESS) {
  22.         try {
  23.             Thread.sleep(100);
  24.             Progress++;  
  25.             mProgressDialog.incrementProgressBy(1);
  26.         } catch (InterruptedException e) {
  27.             // TODO Auto-generated catch block
  28.             e.printStackTrace();
  29.         }
  30.          
  31.         }
  32.    
  33.     }
6.多项选择列表框

 
 

 
 


MultiChoiceID 用于记录多选选中的id号 存在ArrayList中
选中后 add 进ArrayList
取消选中后 remove 出ArrayList。
  1. ArrayList MultiChoiceID = new ArrayList (); 
  2. AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);      MultiChoiceID.clear();
  3. builder.setIcon(R.drawable.icon);
  4.  builder.setTitle("多项选择");
  1. builder.setMultiChoiceItems(mItems,
  2. new boolean[]{false, false, false, false, false, false, false},
  3. new DialogInterface.OnMultiChoiceClickListener() {
  4. public void onClick(DialogInterface dialog, int whichButton,
  5.   boolean isChecked) {
  6.                            if(isChecked) {
  7.                                MultiChoiceID.add(whichButton);
  8.                                showDialog("你选择的id为" + whichButton + " , " + mItems[whichButton]);
  9.                            }else {
  10.                                MultiChoiceID.remove(whichButton);
  11.                            }
  12.                            
  13.                         }
  14.                     });
  15. builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
  16.           public void onClick(DialogInterface dialog, int whichButton) {
  17.                     String str = "";
  18.                     int size = MultiChoiceID.size();
  19.                     for (int i = 0 ;i < size; i++) {
  20.                     str+= mItems[MultiChoiceID.get(i)] + ", ";
  21.                     }
  22.                     showDialog("你选择的是" + str);
  23.                 }
  24.             });
  25.             builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
  26.                 public void onClick(DialogInterface dialog, int whichButton) {
  27.  
  28.                 }
  29.             });
  30.   builder.create().show();
7.自定义布局

  


讲到自定义布局我就得多说一说了,为什么要多说一说呢?

其实自定义布局在Android的开发中非常重要 因为它能让开发者做出自己五彩缤纷的Activity 而不用去使用系统枯燥的界面。

文章评论

热点话题
视频教程