15、android 用toast实现简单的进度显示
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实现简单的进度显示的更多相关文章
- Cocos2d-x实现Android的Toast特征
1.Toast Android的Toast是View视图,显示少量的信息.主要用于一些提示和帮助.本文实现了Toast最主要的操作能, 代码例如以下: //PacToast.h #include &q ...
- Android:Toast简单消息提示框
Toast是简单的消息提示框,一定时间后自动消失,没有焦点. 1.简单文本提示的方法: Toast.makeText(this, "默认的toast", Toast.LENGTH_ ...
- GitHub 上排名前 100 的 Android 开源库进行简单的介绍
若有任何疑问可通过邮件或微博联系我 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开 ...
- 我的Android进阶之旅】GitHub 上排名前 100 的 Android 开源库进行简单的介绍
GitHub Android Libraries Top 100 简介 本文转载于:https://github.com/Freelander/Android_Data/blob/master/And ...
- android学习ProgressBar的简单使用
android 提供的ProgressBar控件分为两种,一种是不带进度的进度条,一种是带进度的进度条,如果可以计算任务的完成量那么就用带进度条的,如果无法计算任务量,那么就使用不带进度的进度条.Pr ...
- Android开发Toast Notifications
Android开发Toast Notifications 关键类 Toast toast通知是一种在窗口表面弹出的消息.它只占用信息显示所需的空间,用户当前的activity仍保持可见并可交互.该通知 ...
- Android开发-各种各样好看漂亮的进度条,指示器,加载提示汇总
导读:之前项目中用到一些进度条,找了不少,打算写个demo自己总结一下,留着以后用, 有些是自己写的,有些是github上找的别人的库,如果大家觉得好看可以用,直接下载复制代码到项目里就可以用,ok ...
- Android使用OKHttp3实现下载(断点续传、显示运行进度)
OKHttp3是现在很流行的Android网络请求框架,那么怎样利用Android实现断点续传呢,今天写了个Demo尝试了一下,感觉还是有点意思 准备阶段 我们会用到OKHttp3来做网络请求,使用R ...
- Android:状态栏禁用时蓝牙多文件传输弹窗及进度显示
一.蓝牙文件传输弹窗 Android原生蓝牙传输文件时,会弹出蓝牙文件接收的确认框且默认是以notification的形式显示在状态栏,当用户点击之后才会弹出一个dialog.那么当状态栏被禁用时,如 ...
随机推荐
- 判断手机,pc方式登录
<script type="text/javascript"> function browserDetect() { var ...
- jQuery on()方法示例及jquery on()方法的优点
jQuery on()方法是官方推荐的绑定事件的一个方法. $(selector).on(event,childSelector,data,function,map) 由此扩展开来的几个以前常见的方法 ...
- 为什么for in循环不适合用于数组
首先一点无关的,使用(var i in a) 而不是( i in a),除非你想创建全局变量. 第二点,for in 循环会忽略空的数组 var a = []; a[5] = 5; // Perfec ...
- Oracle一些常用的查询命令总结(持续更新)
更新于:2015年1月28日 17:08:13 -------------------------表空间 --------------------------------------- ----- 查 ...
- 如何调节datagridview中字体
设置ColumnHeaderDefaultCellStyle的Font属性 或者 编程 datagridview.Columns[index].DefaultCellStyle.Font.Size=“ ...
- BGP学习笔记
源自红茶三杯: BGP应用于大规模网络或运营商,用作在AS间传递路由信息 使用BGP的三大理由 1. 大量路由需要承载, IGP只能容纳千条,而BGP可以容纳上万(应该是IGP结合BGP使用?) 2. ...
- Java 连接MongoDB
1.驱动 通过java连接MongoDB需要一个java版的驱动 下载地址:http://mongodb.github.io/mongo-java-driver/ 2.连接MongoDB 通过 com ...
- 高性能MySQL——第一章MySQL的架构与历史
1.可以使用SHOW TABLE STATUS查询表的相关信息. 2.默认存储引擎是InnoDB,如果没有什么很特殊的要求,InnoDB引擎是我们最好的选择. 3.mysql的infobright引擎 ...
- 仿SDWebImage
仿SDWebImage 目标:模拟 SDWebImage 的实现 说明:整体代码与之前博客上的演练代码的基本一致,只是编写顺序会有变化! 在模仿 SDWebImage 之前,首先需要补充一个知识点:N ...
- 如何让Advanced Installer卸载软件时保留一些文件
http://www.advancedinstaller.com/user-guide/qa-keep-file.html You need to modify some of the resourc ...