zoukankan      html  css  js  c++  java
  • 15、android 用toast实现简单的进度显示

    1                          if(mtoast!=null)
    2                           {
    3                               mtoast.setText(progress);    
    4                           }
    5                           else
    6                           {
    7                               mtoast=Toast.makeText(getApplicationContext(),progress, Toast.LENGTH_SHORT);
    8                           } 
    9                           mtoast.show(); //显示toast信息

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

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

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

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

    2、过程分析

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

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

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

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

    3、代码片段赏析:

     1           HttpUtils http = new HttpUtils();
     2           for(int i=0;i<fontName.length;i++)
     3           {
     4               String path = pathPrefix+fontName[i];
     5               nowDownloadFontName = pathFonts+fontName[i];
     6               http.download(path, pathFonts+fontName[i],new RequestCallBack<File>() {
     7 
     8                   @Override
     9                   public void onStart() {
    10                       CommonUtils.LogWuwei(tag,"开始下载...");
    11                   }
    12 
    13                   @Override
    14                   public void onLoading(long total, long current, boolean isUploading) {
    15                           CommonUtils.LogWuwei(tag,"下载进度:"+((current*100)/total)+"%");
    16                           String progress = "加载字体中,已下载:"+((current*100)/total)+"%";
    17                            
    18                           if(mtoast!=null)
    19                           {
    20                               mtoast.setText(progress);    
    21                           }
    22                           else
    23                           {
    24                               mtoast=Toast.makeText(getApplicationContext(),progress, Toast.LENGTH_SHORT);
    25                           } 
    26                           mtoast.show(); //显示toast信息
    27                   }
    28 
    29                   @Override
    30                   public void onSuccess(ResponseInfo<File> responseInfo) {
    31                       CommonUtils.LogWuwei(tag,"下载成功,文件已经保存至:" + responseInfo.result.getPath());
    32                       
    33                       String progress = "下载成功,文件已经保存至:" + responseInfo.result.getPath();
    34                       if(mtoast!=null)
    35                         {
    36                             mtoast.setText(progress);    
    37                         }
    38                         else
    39                         {
    40                             mtoast=Toast.makeText(getApplicationContext(),progress, Toast.LENGTH_SHORT);
    41                             if(responseInfo.result.getPath().equals(pathFonts+"pianpina.ttf"))
    42                             {
    43                                     mtoast=Toast.makeText(getApplicationContext(),"初始化完毕,谢谢您的耐心等待", Toast.LENGTH_SHORT);
    44                             }
    45 
    46                         } 
    47                         mtoast.show(); //显示toast信息
    48                      
    49                         if(responseInfo.result.getPath().equals(pathFonts+"pianpina.ttf"))
    50                       {
    51                               judgeGoClientOrTv();
    52                       }
    53                   }
    54 
    55 
    56                   @Override
    57                   public void onFailure(HttpException error, String msg) {
    58                           CommonUtils.LogWuwei(tag,"下载失败:"+msg+error); 
    59                   }
    60           });
    61           }

    4、有图有真相

     

    ok,That's all

    2015.3.7更新:

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

     
     
  • 相关阅读:
    Ajax
    事件委托
    事件对象
    js的基础类型与引用类型
    Javascript和HTML dom
    用jQuery写的最简单的表单验证
    初学HTML5的一点理解
    CMake 入门
    centos7上rpm安装wkhtmltopdf
    centos7 下安装思源黑体字体
  • 原文地址:https://www.cnblogs.com/kunyashaw/p/4303661.html
Copyright © 2011-2022 走看看