if(mtoast!=null)
{
mtoast.setText(progress);
}
else
{
mtoast=Toast.makeText(getApplicationContext(),progress, Toast.LENGTH_SHORT);
}
mtoast.show(); //显示toast信息

上述代码就完成了基本功能。

1、为什么会有这个问题?

我们知道如果用Toast.makeText(...)这种方式,那么生成的toast会进行排队,在上一个toast的有效时间没有结束前,不能够更新toast的内容。

那么问题来了,如果想用toast实现简单的,快速的消息提醒,上述排队的方式自然不能满足我们的需求

2、过程分析

我们首先定义一个Toast类型的mtoast并赋值为空。

那么在循环显示进度的方法中,我们引用最上边那段代码:

①如果mtoast为空,就实例化一个Toast变量,同时显示进度;

②在接下来每次进入显示进度的方法中,更改mtoast的显示文本,从而实现进度提醒的作用

3、代码片段赏析:

 1           HttpUtils http = new HttpUtils();
for(int i=0;i<fontName.length;i++)
{
String path = pathPrefix+fontName[i];
nowDownloadFontName = pathFonts+fontName[i];
http.download(path, pathFonts+fontName[i],new RequestCallBack<File>() { @Override
public void onStart() {
CommonUtils.LogWuwei(tag,"开始下载...");
} @Override
public void onLoading(long total, long current, boolean isUploading) {
CommonUtils.LogWuwei(tag,"下载进度:"+((current*100)/total)+"%");
String progress = "加载字体中,已下载:"+((current*100)/total)+"%"; if(mtoast!=null)
{
mtoast.setText(progress);
}
else
{
mtoast=Toast.makeText(getApplicationContext(),progress, Toast.LENGTH_SHORT);
}
mtoast.show(); //显示toast信息
} @Override
public void onSuccess(ResponseInfo<File> responseInfo) {
CommonUtils.LogWuwei(tag,"下载成功,文件已经保存至:" + responseInfo.result.getPath()); String progress = "下载成功,文件已经保存至:" + responseInfo.result.getPath();
if(mtoast!=null)
{
mtoast.setText(progress);
}
else
{
mtoast=Toast.makeText(getApplicationContext(),progress, Toast.LENGTH_SHORT);
if(responseInfo.result.getPath().equals(pathFonts+"pianpina.ttf"))
{
mtoast=Toast.makeText(getApplicationContext(),"初始化完毕,谢谢您的耐心等待", Toast.LENGTH_SHORT);
} }
mtoast.show(); //显示toast信息 if(responseInfo.result.getPath().equals(pathFonts+"pianpina.ttf"))
{
judgeGoClientOrTv();
}
} @Override
public void onFailure(HttpException error, String msg) {
CommonUtils.LogWuwei(tag,"下载失败:"+msg+error);
}
});
}

4、有图有真相

ok,That's all

2015.3.7更新:

android Toast大全(五种情形)建立属于你自己的Toast

 
 

15、android 用toast实现简单的进度显示的更多相关文章

  1. Cocos2d-x实现Android的Toast特征

    1.Toast Android的Toast是View视图,显示少量的信息.主要用于一些提示和帮助.本文实现了Toast最主要的操作能, 代码例如以下: //PacToast.h #include &q ...

  2. Android:Toast简单消息提示框

    Toast是简单的消息提示框,一定时间后自动消失,没有焦点. 1.简单文本提示的方法: Toast.makeText(this, "默认的toast", Toast.LENGTH_ ...

  3. GitHub 上排名前 100 的 Android 开源库进行简单的介绍

    若有任何疑问可通过邮件或微博联系我 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开 ...

  4. 我的Android进阶之旅】GitHub 上排名前 100 的 Android 开源库进行简单的介绍

    GitHub Android Libraries Top 100 简介 本文转载于:https://github.com/Freelander/Android_Data/blob/master/And ...

  5. android学习ProgressBar的简单使用

    android 提供的ProgressBar控件分为两种,一种是不带进度的进度条,一种是带进度的进度条,如果可以计算任务的完成量那么就用带进度条的,如果无法计算任务量,那么就使用不带进度的进度条.Pr ...

  6. Android开发Toast Notifications

    Android开发Toast Notifications 关键类 Toast toast通知是一种在窗口表面弹出的消息.它只占用信息显示所需的空间,用户当前的activity仍保持可见并可交互.该通知 ...

  7. Android开发-各种各样好看漂亮的进度条,指示器,加载提示汇总

    导读:之前项目中用到一些进度条,找了不少,打算写个demo自己总结一下,留着以后用, 有些是自己写的,有些是github上找的别人的库,如果大家觉得好看可以用,直接下载复制代码到项目里就可以用,ok ...

  8. Android使用OKHttp3实现下载(断点续传、显示运行进度)

    OKHttp3是现在很流行的Android网络请求框架,那么怎样利用Android实现断点续传呢,今天写了个Demo尝试了一下,感觉还是有点意思 准备阶段 我们会用到OKHttp3来做网络请求,使用R ...

  9. Android:状态栏禁用时蓝牙多文件传输弹窗及进度显示

    一.蓝牙文件传输弹窗 Android原生蓝牙传输文件时,会弹出蓝牙文件接收的确认框且默认是以notification的形式显示在状态栏,当用户点击之后才会弹出一个dialog.那么当状态栏被禁用时,如 ...

随机推荐

  1. leetcode3:不重复的最长子串长度

    package hashmap; import java.util.HashMap; import java.util.Map; public class hashmap { public stati ...

  2. POJ C++程序设计 编程题#3 编程作业—文件操作与模板

    编程题#3: 整数的输出格式 来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 1000kB 描述 利 ...

  3. 详解Oracle临时表的几种用法及意义

    Oracle临时表可以说是提高数据库处理性能的好方法,在没有必要存储时,只存储在Oracle临时表空间中.希望本文能对大家有所帮助. 1 .前言 Oracle Logo 目前所有使用 Oracle 作 ...

  4. SQL中删除某数据库所有trigger及sp

    SQL中删除某数据库所有trigger及sp   编写人:CC阿爸 2014-6-14 在日常SQL数据库的操作中,如何快速的删除所有trigger及sp呢 以下有三种方式可快速处理. --第一种 - ...

  5. Nginx Location配置语法介绍、优先级说明

    nginx 语法规则:location   [=|~|~*|^~|!~|!~*]    /uri/   { … } location匹配的是$document_uri,$document_uri 会随 ...

  6. Python学习之静态页面数据抓取

    1 页面信息抓取 定义getPage函数,根据传入的页码get到整个页面的html内容 getContent函数,通过正则匹配把页面中的表格部分的html内容取出 最后定义getData函数,同样是通 ...

  7. ARM-Linux S5PV210 UART驱动(3)----串口核心层、关键结构体、接口关系

    尽管一个特定的UART设备驱动完全可以按照tty驱动的设计方法来设计,即定义tty_driver并实现tty_operations其中的成员函数,但是Linux已经在文件serial_core.c中实 ...

  8. python的egg包的安装和制作]

    Defining Python Source Code Encodings Python egg 的安装 egg文件制作与安装 2011-06-10 14:22:50|  分类: python |   ...

  9. opengl基础学习专题 (三) 多边形绘制的几种样式

    题外话 聪明人之所以不会成功,是由于他们缺乏坚韧的毅力. ——艾萨克·牛顿(1643年1月4日—1727年3月31日)英国 也许可以理解为 想更深一步的时候,坚持,努力和聪明缺一不可. 挺直腰杆在此向 ...

  10. oracle-审计导数

    1.因审计需求,需要将MySQL.Oracle数据库中需要的表数据导入到SqlSERVER进行审计. 2.之前的方法:   A. oracle组将表dump下来,进行压缩,传送到oracle导数服务器 ...