初学Android没几天,最近在做一个项目,需要实现对话框弹出一段时间后自动消失,网上查找了部分资源并参考了SDK后,整理了下相关的方法:

实现对话框的弹出消隐,现实主要的方法是使用Toast。Toast一般的使用很简单,一行代码即可:

Toast.makeText(getApplicationContext(), "默认Toast样式", Toast.LENGTH_SHORT).show();

当然,Toast使用不限于此,强大的武器就是这样,菜鸟可以简单上手,高手也可以玩出花样。另如有兴趣深入下,可参考:http://dev.10086.cn/cmdn/wiki/index.php?doc-view-4610.html

下面是我们今天主要提到的方法:

Toast虽然使用很简单,但是它还是有很多的限制的,比如它是没有焦点的,因此即使是自定义的Toast也无法对上面的组件进行操作。例如我们需要一个输入用户信息的对话框,但如一段时间没有信息输入之后则自动关闭,这个就需要使用自定义的对话框了。但自定义的对话框是没有自动消隐的属性的,因此就需要我们有个线程对其进行监控,必要的时候对其进行关闭。

下面,我们使用一般的对话框AlertDialog来举例:

1、首先,在类(SampleView)内定义一个对话框,而后在需要弹出对话框的时候,进行赋值:

private AlertDialog alertDialog = null;//私有的对话框

2、声明并定义一个计时器,并在定时器内定义标志位,用于对传递消息进行判断:

private final int CLOSE_ALERTDIALOG = 0; //定义关闭对话框的动作信号标志 private final int CLOSE_SAMPLE_VIEW = 0; //定义关闭SampleView的动作信号标志 private DelayCloseController delayCloseController = new DelayCloseController(); private class DelayCloseController extends TimerTask { private Timer timer = new Timer(); private int actionFlags = 0;//标志位参数 public void setCloseFlags(int flag) { actionFlags = flag; } @Override public void run() { Message messageFinish = new Message(); messageFinish.what = actionFlags ; mHandler.sendMessage(messageFinish); } }

3、声明并定义一个Handler,用于接收定时器发送的信息,并对信息作出反馈。

private Handler mainHandler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what) { case CLOSE_SAMPLE_VIEWER: if(alertDialog != null && alertDialog.isShowing()) { alertDialog.dismiss(); } SampleView.this.finish(); break; case CLOSE_ALERTDIALOG: if(alertDialog != null alertDialog.isShowing()) { alertDialog.dismiss(); //关闭对话框 } break; default: break; } } };

4、上述动作,已经完成了我们需要为程序做的准备工作,接下来,只需在需要弹出对话框的位置添加对话框定义并显示的代码,以及发送相关的消息即可:

//初始化对话框并显示 alertDialog = new AlertDialog.Builder(Main.this) .setTitle("自动关闭对话框") .setMessage("对话框将在8s之后关闭") .show(); delayCloseController.setCloseFlags(CLOSE_ALERTDIALOG); //设置信息标志位 delayCloseController.timer.schedule(delayCloseController, 8000); //启动定时器

依照以上的方法即可实现对话框的定时关闭的功能了。

android 自定义dialog 定时关闭,Android,对话框定时自动关闭的实现相关推荐

  1. android dialog 自定义布局,Android自定义Dialog实现加载对话框效果

    前言 最近开发中用到许多对话框,之前都是在外面的代码中创建AlertDialog并设置自定义布局实现常见的对话框,诸如更新提示等含有取消和删除两个按钮的对话框我们可以通过代码创建一个AlertDial ...

  2. android自定义dialog不显示,Android 自定义的dialog显示不正常呢,怎么回事???

    Android 自定义的dialog显示不正常呢,怎么回事??? 用android的自定义布局文件: android:layout_width="match_parent" and ...

  3. android自定义dialog布局文件,Android自定义Dialog及其布局

    实际项目开发中默认的Dialog无法满足需求,需要自定义Dialog及其布局,并响应布局中控件的事件. 上效果图: 自定义Dialog,LogoutDialog: 要将自定义布局传入构造函数中,才能在 ...

  4. android自定义dialog对话框,android的自定义dialog对话框实现

    Android自定义dialog对话框 一:自定义dialog 如何填充布局 ①自定MyDialog类,在类里关联布局 public class MyDialog extends AlertDialo ...

  5. Android自定义Dialog(仿QQ同步助手退出对话框)

    继承Dialog类就可以了,写写布局文件,写写style,就OK了.下面开始. 先上布局文件: <LinearLayout xmlns:android="http://schemas. ...

  6. android如何自定义dialog,Android—自定义Dialog

    在 Android 日常的开发中,Dialog 使用是比较广泛的.无论是提示一个提示语,还是确认信息,还是有一定交互的(弹出验证码,输入账号密码登录等等)对话框. 而我们去看一下原生的对话框,虽然随着 ...

  7. android 自定义dialog样式,Android 自定义dialog类

    首先定制style样式 styles.xml 加入自定义样式 @null true true true @color/transparent @color/transparent true 0.6 在 ...

  8. android dialog 消失动画,android 自定义dialog弹出和消失缩放动画

    本文转自:android 自定义dialog,窗口动画 Java代码: package com.sunxu.org.IndividualityDialog; import Android.app.Ac ...

  9. Android弹出自定义Dialog,android自定义Dialog实现底部弹窗

    android自定义Dialog实现底部弹窗 拿到这个需求,很多人都是直接想用popWindow 实现,但是这样的效果我们完全可以根据系统的Dialog 自定义一个. AlertDialog.Buil ...

  10. android 自定义透明 等待 dialog,Android自定义Dialog内部透明、外部遮罩效果

    Android自定义Dialog内部透明.外部遮罩效果 发布时间:2020-09-09 03:01:41 来源:脚本之家 阅读:117 作者:zst1303939801 本文实例为大家分享了Andro ...

最新文章

  1. Example002定时打开窗口
  2. js long类型精度丢失_浮点数丢失精度
  3. 机器学习 聚类篇——DBSCAN的参数选择及其应用于离群值检测
  4. Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法
  5. mysql 昨天日期_MySQL 日期函数 今天明天昨天......
  6. 不属于计算机完成科学特点的是,2020年9月网络教育统考计算机应用基础模拟题试卷4...
  7. SQLite与Sql Server的语法差异(转载)
  8. putty远程登录linux无ssh,收集的linux远程ssh连接putty失败解决办法!
  9. 线程之线程同步(1)
  10. 公交换乘 详解(C++)
  11. h5 富文本输入框_Html富文本编辑器
  12. Android开发:关于高德地图轨迹纠偏,只显示两个点问题的整体概述
  13. autocad不能画图_最新AutoCAD软件+插件合集+视频讲解,高效实用,限时领
  14. 503 service unavailable php,503service unavailable错误提示解决方法
  15. Revit插件 | 建模助手 V1.8.52 爆炸式更新,你确定不来看看?
  16. 德保罗大学计算机科学专业,德保罗大学专业
  17. RationalDMIS 7.1建立工件坐标系的过程:必须尊守321法则
  18. PTA 7-6 评委打分 java语言 班级里要搞智力竞赛 同学们都踊跃参加。进入最后决赛的是10个同学,随着一道道题目的出示,有时是1号选手得分,有时是5号选手得分,每次答对者得10分
  19. 新版谷歌眼镜专利曝光:终于像普通眼镜了
  20. 湖北省制造业高质量发展专项奖励申报条件,2022年揭榜挂帅项目指南

热门文章

  1. Object 类的强制转换
  2. linux文件恢复工具下载_十大最佳Linux数据恢复工具,用于恢复已删除/损坏的文件
  3. 学习笔记1 三大聚类方法:K-means聚类、层次聚类、DBSCAN聚类
  4. html css 两张图片重叠放,背景图片叠加问题,大神给指个路_html/css_WEB-ITnose
  5. SSM框架整合(企业权限管理系统)
  6. js-onbeforepaste详解
  7. onbeforepaste事件用法 onkeyup
  8. dwr 后台服务器推送技术
  9. ios学习--iphone开发私房菜_5_] iphone中如何实现下拉菜单 .
  10. 昆山达华机器人_华达科技把机器人用“活”了 来源:泰州日报记者 顾海燕 通讯员 张颖 秋敏...