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.那么当状态栏被禁用时,如 ...
随机推荐
- select 语句占位符
对于已预备的语句,可以使用位置保持符.以下语句将从tb1表中返回一行: mysql> SET @a=1; mysql> PREPARE STMT FROM "SELECT * F ...
- State
#include <iostream> using namespace std; #define DESTROY_POINTER(ptr) if (ptr) { delete ptr; p ...
- Query for Component Path within PeopleSoft Portal
1) Run the below SQL to get the content reference name for your component ;-- Replace :1 with the c ...
- PeopleSoft Object Types Definitions
PeopleSoft stores object definitions types such as Record, Field and SQL definitions as numbers in ...
- IMAP收邮件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- jQuery 遍历each()的使用方法
.each()是一个for循环的包装迭代器.each()通过回调的方式处理,并且会有2个固定的实参,索引与元素(从0开始计数).each()回调方法中的this指向当前迭代的dom元素 遍历方法: & ...
- 三、MongoDB的创建、更新和删除
一.MongoDB的下载.安装与部署 二.MongoDB的基础知识简介 三.MongoDB的创建.更新和删除 概要 下面开始学习MongoDB最重要也是最基础的部分:C(创建)R(查询)U(更新)D( ...
- phpcms v9 中get的mysql查询表某字段最大值数据,表某字段不重复数据
直切正题 1.表tb中字段num最大的数据 {pc:get $sql="select * from tb where num=(select MAX(num) from tb)"} ...
- hdu 5146 Sequence
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5146 Sequence Description Today we have a number sequ ...
- OpenStack:安装Keystone
>安装Keystone1. 安装# apt-get install keystone2. 创建dbcreate database keystone;grant all privileges on ...