zoukankan      html  css  js  c++  java
  • 安卓AlertDialog对话面板的使用---Android开发

    1  AlertDialog.Builder builder=new AlertDialog.Builder(this);
    2         builder.setTitle("历史记录").setIcon(R.mipmap.info).setMessage(str)
    3                 .setPositiveButton("ok", new DialogInterface.OnClickListener() {
    4                     @Override
    5                     public void onClick(DialogInterface dialog, int which) {
    6                     }
    7                 });
    8         AlertDialog ad=builder.create();
    9         ad.show();


    上面这段代码显示的结果如图所示。

    简单记录一下AlertDialog的用法:

     下面的内容整理自:https://blog.csdn.net/streate/article/details/90899515


    1.普通提示对话框

    其上主要是提示标题,消息主体,底部“取消”、“确定”等按钮。

     1 /**
     2  * 提示对话框
     3  */
     4 public void tipDialog() {
     5     AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
     6     builder.setTitle("提示:");
     7     builder.setMessage("这是一个普通对话框,");
     8     builder.setIcon(R.mipmap.ic_launcher);
     9     builder.setCancelable(true);            //点击对话框以外的区域是否让对话框消失
    10  
    11     //设置正面按钮
    12     builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
    13         @Override
    14         public void onClick(DialogInterface dialog, int which) {
    15             Toast.makeText(MainActivity.this, "你点击了确定", Toast.LENGTH_SHORT).show();
    16             dialog.dismiss();
    17         }
    18     });
    19     //设置反面按钮
    20     builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
    21         @Override
    22         public void onClick(DialogInterface dialog, int which) {
    23             Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
    24             dialog.dismiss();
    25         }
    26     });
    27     //设置中立按钮
    28     builder.setNeutralButton("保密", new DialogInterface.OnClickListener() {
    29         @Override
    30         public void onClick(DialogInterface dialog, int which) {
    31             Toast.makeText(MainActivity.this, "你选择了中立", Toast.LENGTH_SHORT).show();
    32             dialog.dismiss();
    33         }
    34     });
    35  
    36  
    37     AlertDialog dialog = builder.create();      //创建AlertDialog对象
    38     //对话框显示的监听事件
    39     dialog.setOnShowListener(new DialogInterface.OnShowListener() {
    40         @Override
    41         public void onShow(DialogInterface dialog) {
    42             Log.e(TAG, "对话框显示了");
    43         }
    44     });
    45     //对话框消失的监听事件
    46     dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
    47         @Override
    48         public void onCancel(DialogInterface dialog) {
    49             Log.e(TAG, "对话框消失了");
    50         }
    51     });
    52     dialog.show();                              //显示对话框
    53 }

    使用到的方法

    - setTitle:设置对话框的标题,比如“提示”、“警告”等; 
    - setMessage:设置对话框要传达的具体信息; 
    - setIcon: 设置对话框的图标; 
    - setCancelable: 点击对话框以外的区域是否让对话框消失,默认为true; 
    - setPositiveButton:设置正面按钮,表示“积极”、“确认”的意思,第一个参数为按钮上显示的文字,下同; 
    - setNegativeButton:设置反面按钮,表示“消极”、“否认”、“取消”的意思; 
    - setNeutralButton:设置中立按钮; 
    - setOnShowListener:对话框显示时触发的事件; 
    - setOnCancelListener:对话框消失时触发的事件。

    2.普通列表对话框

    列表对话框的内容就是一列显示内容,

    需要用到构造器的setItems方法

    参数一是列表数据,参数二是点击监听接口,

    我们要实现这样一个小功能,用户在点击某一项时弹出一个Toast提示选中项的内容。

     1 /**
     2  * 列表对话框
     3  */
     4 private void itemListDialog() {
     5     AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
     6     builder.setTitle("选择你喜欢的课程:");
     7     builder.setCancelable(true);
     8     final String[] lesson = new String[]{"语文", "数学", "英语", "化学", "生物", "物理", "体育"};
     9     builder.setIcon(R.mipmap.ic_launcher);
    10     builder.setIcon(R.mipmap.tab_better_pressed)
    11             .setItems(lesson, new DialogInterface.OnClickListener() {
    12                 @Override
    13                 public void onClick(DialogInterface dialog, int which) {
    14                     Toast.makeText(getApplicationContext(), "你选择了" + lesson[which], Toast.LENGTH_SHORT).show();
    15                 }
    16             }).create();
    17     //设置正面按钮
    18     builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
    19         @Override
    20         public void onClick(DialogInterface dialog, int which) {
    21             dialog.dismiss();
    22         }
    23     });
    24     //设置反面按钮
    25     builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
    26         @Override
    27         public void onClick(DialogInterface dialog, int which) {
    28             dialog.dismiss();
    29         }
    30     });
    31     AlertDialog dialog = builder.create();     //创建AlertDialog对象
    32     dialog.show();                              //显示对话框
    33 }

    3.单选对话框

    单选对话框的内容就是一个单项选择列表,

    需要用到setSingleChoiceItems方法,参数一是列表数据,

    参数二是默认选中的item,参数三则是点击监听接口,

    我们要实现这样一个小功能,用户在选好某一项之后记下其选择,

    下次点开对话框时就默认选中该项。

     1 /**
     2  * 单选对话框
     3  */
     4 public void singleChoiceDialog() {
     5     AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
     6  
     7     builder.setTitle("你现在居住地是:");
     8     final String[] cities = {"北京", "上海", "广州", "深圳", "杭州", "天津", "成都"};
     9  
    10     builder.setSingleChoiceItems(cities, chedkedItem, new DialogInterface.OnClickListener() {
    11         @Override
    12         public void onClick(DialogInterface dialog, int which) {
    13             Toast.makeText(getApplicationContext(), "你选择了" + cities[which], Toast.LENGTH_SHORT).show();
    14             chedkedItem = which;
    15         }
    16     });
    17     builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
    18         @Override
    19         public void onClick(DialogInterface dialog, int which) {
    20             dialog.dismiss();
    21         }
    22     });
    23  
    24     builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
    25         @Override
    26         public void onClick(DialogInterface dialog, int which) {
    27             dialog.dismiss();
    28         }
    29     });
    30  
    31     AlertDialog dialog = builder.create();  //创建AlertDialog对象
    32     dialog.show();                           //显示对话框
    33 }

    4.复选对话框

    复选对话框是一个可以重复选中的列表,与单选对话框有点像,

    不过调用的是setMultiChoiceItems方法,而且多了一个布尔值参数isChecked

    表示当前点击的item是否被选中。

    我们创建一个集合,将点击选中的item添加到集合中,

    取消勾选的话就从集合中移除,点击确认按钮后就将选中内容显示出来。

     1 /**
     2  * 复选对话框
     3  */
     4 public void multiChoiceDialog() {
     5     AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
     6     builder.setTitle("请选择你喜欢的颜色:");
     7     final String[] colors = {"红色", "橙色", "黄色", "绿色", "蓝色", "靛色", "紫色"};
     8     final List<String> myColors = new ArrayList<>();
     9  
    10     builder.setMultiChoiceItems(colors, null, new DialogInterface.OnMultiChoiceClickListener() {
    11         @Override
    12         public void onClick(DialogInterface dialog, int which, boolean isChecked) {
    13             if (isChecked) {
    14                 myColors.add(colors[which]);
    15             } else {
    16                 myColors.remove(colors[which]);
    17             }
    18         }
    19     });
    20  
    21     builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
    22         @Override
    23         public void onClick(DialogInterface dialog, int which) {
    24             String result = "";
    25             for (String color : myColors) {
    26                 result += color + "、";
    27             }
    28             Toast.makeText(getApplicationContext(), "你选择了: " + result, Toast.LENGTH_SHORT).show();
    29             dialog.dismiss();
    30         }
    31     });
    32  
    33     builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
    34         @Override
    35         public void onClick(DialogInterface dialog, int which) {
    36             myColors.clear();
    37             dialog.dismiss();
    38         }
    39     });
    40     AlertDialog dialog = builder.create();      //创建AlertDialog对象
    41     dialog.show();                               //显示对话框
    42 }
  • 相关阅读:
    阿里云如何打破Oracle迁移上云的壁垒
    第三代DRDS分布式SQL引擎全新发布
    玩转MaxCompute studio SQL编辑器
    如何在阿里云上安全的存放您的配置
    阿里云E-HPC联合安世亚太、联科集团共建云超算生态
    阿里云弹性裸金属服务器-神龙架构(X-Dragon)揭秘
    从保障淘宝到全球市场“第一阵营”,阿里云的DDoS防护之路走了多远?
    飞天技术汇“2018云栖大会·上海峰会”专场,等你加入
    Yeoman:Web 应用开发流程与工具—AngularJS—Bootstrap—js
    【codeforces 550A】Two Substrings
  • 原文地址:https://www.cnblogs.com/rainbow-1/p/14496551.html
Copyright © 2011-2022 走看看