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. Java中join的使用

    join用于主线程等待子线程运行完毕它的run方法,再继续执行下面的代码. join() = join(0),主线程无限等待子线程执行完毕. join(n milliseconds),主线程只等待n毫 ...

  2. 【风马一族_php】NO0_搭建web服务器

    原文来自:http://www.cnblogs.com/sows/p/5977996.html  (博客园的)风马一族 侵犯版本,后果自负 安装apache apache是一种B/S结构的软件,apa ...

  3. javascript中for/in循环及使用技巧

    JavaScript 支持不同类型的循环: for - 循环代码块一定的次数 for/in - 循环遍历对象的属性 while - 当指定的条件为 true 时循环指定的代码块 do/while - ...

  4. 《第一行代码--Android》阅读笔记之Activity

    1.BaseActivity里面可以干什么 定义一个Context定义一个TAG 记录当前的Activity名字getClass().getSimpleName(); 2.Activity里面的几个重 ...

  5. mysql 根据生日计算年龄,并查询在18-25之间的语句

    select id, DATE_FORMAT(birthday,"%Y-%m-%d") birthday, CURDATE() , (year(now())-year(birthd ...

  6. 批量删除的js代码

    <script type="text/javascript"> function seltAll(){ var chckBoxSign = document.getEl ...

  7. 解决Genymotion下载设备失败的方法(Connection Timeout)

    一直下载不下来,报错. 解决办法: 打开 C:\Users\用户名\AppData\Local\Genymobile目录 打开genymotion.log文件,在里面最下面几行,找到如下日志 [Deb ...

  8. 002-python基础-hello-world

    python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行. 如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需 ...

  9. AlertDialog.Builder对话框类的用法

    1.在测试时,如何实现一个提示 可以使用 Toast.makeText(this, "这是一个提示", Toast.LENGTH_SHORT).show(); //从资源文件str ...

  10. uva 11186 Circum Triangle<叉积>

    链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...