Android开发中我们经常需要用到提示框,以便更好的和用户进行交互

首先我们来看看效果图

实现这个其实很简单,Android的API已经为我们提供了一个提示框类AlertDialog,我们实现的时候直接调用它就好了

1.简单的消息提示框

[java] view plain copy

  1. // 简单消息提示框
  2. private void showExitDialog01(){
  3. new AlertDialog.Builder(this)
  4. .setTitle("标题")
  5. .setMessage("简单的消息提示框")
  6. .setPositiveButton("确定", null)
  7. .show();
  8. }

其中this代表的是上下文context的意思,这里的this代表当前Activity的引用,为什么使用this能传递一个context呢?因为Activity本身就是Context的一个子类。

setTitle:设置标题文字

setMessage:设置对话框显示内容

setPositiveButton:设置确认按钮,第二个参数可以传入一个监听事件,可以自定义确认按钮的事件监听

show:显示该对话框

2.带“是”和“否”的提示框

[java] view plain copy

  1. // 带“是”和“否”的提示框
  2. private void showExitDialog02(){
  3. new AlertDialog.Builder(this)
  4. .setTitle("带确定键的提示框")
  5. .setMessage("确定吗")
  6. .setPositiveButton("是", null)
  7. .setNegativeButton("否", null)
  8. .show();
  9. }

setNegativeButton:设置否定按钮,第二个参数可以传入自定义的事件监听,为null则使用系统默认的事件监听

3.可输入文本的提示框

[java] view plain copy

  1. // 可输入文本的提示框
  2. private void showExitDialog03(){
  3. final EditText edt = new EditText(this);
  4. edt.setMinLines(3);
  5. new AlertDialog.Builder(this)
  6. .setTitle("请输入")
  7. .setIcon(android.R.drawable.ic_dialog_info)
  8. .setView(edt)
  9. .setPositiveButton("确定", new DialogInterface.OnClickListener() {
  10. public void onClick(DialogInterface arg0, int arg1) {
  11. text_01.setText(edt.getText().toString());
  12. }
  13. })
  14. .setNegativeButton("取消", null)
  15. .show();
  16. }

edt.setMinLines(3):设置输入框最小文本行数

setIcon:设置对话框标题图标,这里使用的是android自带的图片,我们也可以使用自己的图标

setView:给对话框添加View控件,这个控件可以是EditText,也可以是ImageView,也可以是TextView等等,只要继承了View的控件都可以传入

new DialogInterface:这里需要注意,一定要导入正确的包,不是View类下的OnClickListener,而是DialogInterface类下的OnClickListener

4.单选提示框

[java] view plain copy

  1. // 单选提示框
  2. private void showExitDialog04(){
  3. new AlertDialog.Builder(this)
  4. .setTitle("请选择")
  5. .setIcon(android.R.drawable.ic_dialog_info)
  6. .setSingleChoiceItems(new String[]{"选项1","选项2","选项3","选项4","选项5","选项6"}, -1, new DialogInterface.OnClickListener(){
  7. public void onClick(DialogInterface arg0, int arg1) {
  8. switch (arg1) {
  9. case 0:text_01.setText("选择了一");break;
  10. case 1:text_01.setText("选择了二");break;
  11. case 2:text_01.setText("选择了三");break;
  12. default: break;
  13. }
  14. arg0.dismiss();
  15. }
  16. })
  17. .setNegativeButton("取消", null)
  18. .show();
  19. }

setSingleChoiceItems:创建带单选按钮的列表,它有多种载入数据的方式,这里我们使用的是从字符串数组中装载数据,几个方式分别为

1.从资源文件中加载数据

public Builder setSingleChoiceItems(int itemsId, int checkedItem, final OnClickListener listener)

2.从数据集中加载数据

public Builder setSingleChoiceItems(Cursor cursor, int checkedItem, String labelColumn, final OnClickListener listener)

3.从字符串数组中加载数据

public Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)

4.从ListAdapter对象中加载数据

public Builder setSingleChoiceItems(ListAdapter adpater, int checkedItem, final OnClickListener listener)

第一个参数为要加载的数据,第二个参数为默认选中的按钮,如果为0则代表第一个项目被选中,为-1则代表没有项目被选中。第三个参数可为单选列表的项目设置监听事件
onClick(DialogInterface arg0, int arg1):其中arg0代表的是当前对话框对象,可以使用arg0.dismiss来关闭当前对话框,arg1代表单选列表中单个项目的位置

5.多选提示框

[java] view plain copy

  1. // 多选提示框
  2. private void showExitDialog05(){
  3. new AlertDialog.Builder(this)
  4. .setTitle("多选框")
  5. .setMultiChoiceItems(new String[]{"选项1","选项2","选项3","选项4","选项5","选项6"}, null, null)
  6. .setPositiveButton("确定",null)
  7. .setNegativeButton("取消",null)
  8. .show();
  9. }

setMultiChoiceItems:创建带多选按妞的列表
第一个参数为要加载的数据
第二个参数可设置默认选中的按钮,比如我们想让“选项2”和“选项3”被选中,则可设置第二个参数为new boolean[]{false,true,true,false,false,false}
第三个参数为监听事件,需要设置事件监听时则添加new DialogInterface.OnMultiChoiceClickListener()

6.列表对话框

[java] view plain copy

  1. // 列表对话框
  2. private void showExitDialog06(){
  3. new AlertDialog.Builder(this)
  4. .setTitle("列表框")
  5. .setItems(new String[]{"列表1","列表2","列表3","列表4","列表5"}, null)
  6. .setNegativeButton("确定", null)
  7. .show();
  8. }

setItems:设置添加列表框,第二个参数可传入事件监听

7.显示图片的对话框

[java] view plain copy

  1. // 显示图片的对话框
  2. private void showExitDialog07(){
  3. ImageView img = new ImageView(this);
  4. img.setImageResource(R.drawable.hua);
  5. new AlertDialog.Builder(this)
  6. .setTitle("图片框")
  7. .setView(img)
  8. .setPositiveButton("确定", null)
  9. .show();
  10. }

这个对话框的实现其实和第3个可输入文本的提示框实现方式一样,都是通过setView添加View控件达到显示效果

Demo源码:传送门

ANDROID各种提示框相关推荐

  1. android自定义吐司通知,IOS 仿Android吐司提示框的实例(分享)

    直接上代码 #import @interface ShowToastView : UIView +(void)showToastView:(UIView *)uiview WithMessage:(N ...

  2. android Dialog提示框。单选项dialog,多选项dialog

    private void showNormalDialogOne() {/* @setIcon 设置对话框图标* @setTitle 设置对话框标题* @setMessage 设置对话框消息提示* s ...

  3. 详解-Android各种提示框

    首先我们来看看效果图 1.简单的消息提示框 // 简单消息提示框 private void showExitDialog01(){ new AlertDialog.Builder(this) .set ...

  4. Android消息提示框及CheckBox组件

    目录 一.Toast(消息提示框) 1.创建显示普通文本的Toast 2.创建显示带图片的Toast 二.CheckBox组件 1.在CheckBox在XML文件中的基本语法 2.CheckBox 选 ...

  5. Android消息提示框

    Toast(吐丝框) 1.1 Toast是Android中的一种简易的消息提示框 1.2 使用这个类的最简单的方法是调用静态方法构造您所需要的一切,并返回一个新的Toast对象. Toast toas ...

  6. js 自定义类Android吐司提示框

    (function(){     var mouseX = 0;     var mouseY = 0;     //定义一个全局toaslist用来存在新建的吐司     var toastLsit ...

  7. 提示框样式说明android:windowFrame

    在编程中,会很经常砬到提示框,比如说大数据在运行时,为了不让用户感觉系统已经死机,那么会做一个旋转的对话框,提示用户,目前系统正在运行.下面说一下,这种提示框在样式中配置的各个信息 <style ...

  8. android 弹窗圆角,Android开发笔记: Android最简单的圆角提示框

    1 创建drawable文件 all_radius.xml 圆角值为20dp,背景颜色为box,边框颜色为border,可以自己定义一个颜色 android:topLeftRadius="2 ...

  9. Android 自定义AlertDialog(退出提示框)

    有时候我们需要在游戏或应用中用一些符合我们样式的提示框(AlertDialog) 以下是我在开发一个小游戏中总结出来的.希望对大家有用. 先上效果图: 下面是用到的背景图或按钮的图片 经过查找资料和参 ...

最新文章

  1. 视觉Transformer最新综述
  2. 领域计算机控制系统分为,计算机测控系统概述
  3. 如何摇晃一瓶水使其核聚变?
  4. c#多线程thread实例详解
  5. 《码农翻身》之浪潮之巅的Web
  6. 越狱装源未能连接到服务器,科普cydia无法加载源地址插件安装错误解决方法及Cydia怎么备份shsh...
  7. 诗字辈大全:诗仙、诗圣、诗魔、诗佛、诗神、诗鬼、诗杰、诗狂、诗骨、诗家夫子、诗豪、诗囚、诗奴...
  8. Spring Security(3)
  9. 牛顿迭代法 解 二元高次方程组 Mathematica
  10. 大力呼吁国内Fil厂商利用IPFS技术赋能实体经济,实现数据安全存储,已十分重要且紧迫了
  11. Kata Containers及相关vmm介绍
  12. oracle怎么生成osf,Oracle技术之Linux 建立软raid
  13. python 单词纠错_Python 简单单词纠错识别
  14. 二维码的生成和解析(qrcode 和 zxing)
  15. 外包公司干了不到 3 个月,我离职了
  16. 学计算机的演员,南开大学计算机系到演员 张桐回顾“不安分”的青春
  17. 那你讲一下LeakCanary的原理
  18. python %f %e %g
  19. 从零开始学习Hadoop--第5章 压缩
  20. 区块链技术天才BM谈EOS

热门文章

  1. 被漂亮的“假”数据蒙蔽?用它精确追踪APP数据!
  2. 北大肖臻老师《区块链技术与应用》系列课程学习笔记[10]BTC思考
  3. 腾讯T3面试官透露!让阿里架构师告诉你为什么要分库分表,最新整理
  4. 8080端口被占用的问题解决
  5. Android中所有UI组件基类是,【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity...
  6. mysql还原数据库时改名_mysql数据库可以重新命名吗
  7. apache配置文件AddType application/x-httpd-php .php
  8. 单调队列java_浅谈单调队列优化dp
  9. ABAP QUAN类型和标准P类型转换关系
  10. MYSQL 索引类型