您的位置:首页 > 移动开发 > Android开发

15、android 用toast实现简单的进度显示

2015-02-27 16:45 435 查看
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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: