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,1)">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 void tipDialog() { 5 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity. 6 builder.setTitle("提示:" 7 builder.setMessage("这是一个普通对话框," 8 builder.setIcon(R.mipmap.ic_launcher); 9 builder.setCancelable(true); //点击对话框以外的区域是否让对话框消失 10 11 设置正面按钮 12 builder.setPositiveButton("确定",1)">13 @Override 14 15 Toast.makeText(MainActivity.this,"你点击了确定",Toast.LENGTH_SHORT).show(); 16 dialog.dismiss(); 17 } 18 }); 19 设置反面按钮 20 builder.setNegativeButton("取消",1)">21 22 23 Toast.makeText(MainActivity.24 25 26 27 设置中立按钮 28 builder.setNeutralButton("保密",1)">29 30 31 Toast.makeText(MainActivity.32 33 34 35 36 37 AlertDialog dialog = builder.create(); 创建AlertDialog对象 38 对话框显示的监听事件 39 dialog.setOnShowListener( DialogInterface.OnShowListener() { 40 41 onShow(DialogInterface dialog) { 42 Log.e(TAG,"对话框显示了"43 44 45 对话框消失的监听事件 46 dialog.setOnCancelListener( DialogInterface.OnCancelListener() { 47 48 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提示选中项的内容。
* 列表对话框 private itemListDialog() { 6 builder.setTitle("选择你喜欢的课程:" 7 builder.setCancelable(true 8 final String[] lesson = new String[]{"语文","数学","英语","化学","生物","物理","体育"}; 9 10 builder.setIcon(R.mipmap.tab_better_pressed) 11 .setItems(lesson,1)">12 @Override 13 14 Toast.makeText(getApplicationContext(),"你选择了" + lesson[which],1)">15 } }).create(); 17 18 builder.setPositiveButton("确定",1)">19 20 22 23 24 25 builder.setNegativeButton("取消",1)">27 28 30 31 AlertDialog dialog = builder.create(); 创建AlertDialog对象 32 dialog.show(); 33 }
3.单选对话框
单选对话框的内容就是一个单项选择列表,
需要用到setSingleChoiceItems
方法,参数一是列表数据,
参数二是默认选中的item,参数三则是点击监听接口,
我们要实现这样一个小功能,用户在选好某一项之后记下其选择,
下次点开对话框时就默认选中该项。
* 单选对话框 singleChoiceDialog() { 6 7 builder.setTitle("你现在居住地是:"final String[] cities = {"北京","上海","广州","深圳","杭州","天津","成都" 9 10 builder.setSingleChoiceItems(cities,chedkedItem,1)">11 12 int which) { 13 Toast.makeText(getApplicationContext(),1)"> cities[which],1)">14 chedkedItem = which; 17 builder.setPositiveButton("确认",1)">19 20 23 24 builder.setNegativeButton("取消",1)">26 27 30 31 AlertDialog dialog = builder.create(); 32 dialog.show(); 33 }
4.复选对话框
复选对话框是一个可以重复选中的列表,与单选对话框有点像,
不过调用的是setMultiChoiceItems方法,而且多了一个布尔值参数isChecked,
表示当前点击的item是否被选中。
我们创建一个集合,将点击选中的item添加到集合中,
取消勾选的话就从集合中移除,点击确认按钮后就将选中内容显示出来。
* 复选对话框 multiChoiceDialog() { 6 builder.setTitle("请选择你喜欢的颜色:" 7 final String[] colors = {"红色","橙色","黄色","绿色","蓝色","靛色","紫色" 8 final List<String> myColors = new ArrayList<>(); 10 builder.setMultiChoiceItems(colors,1)">null,1)"> DialogInterface.OnMultiChoiceClickListener() { int which,1)">boolean isChecked) { 13 if (isChecked) { 14 myColors.add(colors[which]); 15 } else { myColors.remove(colors[which]); } 20 21 builder.setPositiveButton("确认",1)">23 24 String result = ""; 25 for (String color : myColors) { 26 result += color + "、"28 Toast.makeText(getApplicationContext(),"你选择了: " + result,1)">31 32 33 builder.setNegativeButton("取消",1)">35 36 myColors.clear(); 37 38 39 40 AlertDialog dialog = builder.create(); 41 dialog.show(); 42 }
原文地址:https://www.cnblogs.com/rainbow-1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。