Android软件开发之盘点所有Dialog对话框大合集
  • 发表于2020-01-03 15:11
  • |
  • 181次阅读
  • |
  • 来源 豪创

对话框大合集
今天我用自己写的一个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 而不用去使用系统枯燥的界面。


本篇文章部分内容及图片均来源于网络,如侵犯到您的权益,请及时通知我们。

181
热门教程