2015-06-19 30 views
0

我实现了一个进度条,下载两个文件,进度条如下进度条随着不同的讯息,不同的文件

@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case progress_bar_type: // we set this to 0 
     pDialog = new ProgressDialog(this); 
     if (x.equals("xP")) 
     { 
      pDialog.setMessage("Downloading file. Please wait..."); 
     } 
     if (x.equals("xV")) 
     { 
      pDialog.setMessage("Updating file. Please wait..."); 
     } 

     pDialog.setIndeterminate(false); 
     pDialog.setMax(100); 
     pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
     return pDialog;  
    default: 
     return null; 
    } 
} 

我想显示不同的按摩每两个文件(下载和更新)。

  1. 我按下一个按钮
  2. 它调用类A(X​​ = XP),这将下载该文件(消息是Downlaoding)
  3. A类然后调用类B(X = XV),这将下载的第二文件(消息被更新)
  4. 然而,当进度启动
  5. 如果我在的onClick按钮组x,则x将保持在整个按钮事件相同的值即使该事件具有限定X启动两个类X不为公知的在他们和因此消息将永远下载这两个文件。希望这是有道理的。

回答

0

您可以动态更改progressDialog的消息,因此一旦得到X,您可以将消息设置为适当的消息。 为了避免混淆,如果它在UI线程中运行,请尝试更新A类和B类本身中的消息。

+0

我注意到,进度条在单个实例中为每个文件运行两次,这很好,但它只被调用一次而不是两次,我已经放出一个系统输出,显示该调用仅被调用一次,但运行两次,这就是为什么我挣扎,它不会为每个文件再次启动。 – TwoStarII

+1

检查进度条的实例,如果它不为空,并且isShowing()为true,则只更新其消息,否则创建一个新实例。 –

+0

谢谢,我在if和else语句中使用了isShowing(),但由于某种原因,它在else(not if)语句中更新,但是这对我有用:如果(pDialog.isShowing()){ }通过out.println( “显示:”); //这是错的吗? } else \t { \t System.out.println(“NOT SHOWING:”); \t pDialog.setMessage(“正在更新文件,请稍候...”); \t} – TwoStarII

相关问题