【问题标题】:Showing time on ProgressBar in Android在 Android 的 ProgressBar 上显示时间
【发布时间】:2011-02-25 17:30:30
【问题描述】:

现在,我已经创建了进度条,我想为进度条分配时间(例如 2 分钟) 并且用户必须能够在运行进度条时看到时间。 我们如何才能做到这一点?

【问题讨论】:

    标签: java android


    【解决方案1】:

    您可以使用 CountDownTimer 更新您的 ProgressBar

        bar = (ProgressBar) findViewById(R.id.progress);
        bar.setProgress(total);
        int twoMin = 2 * 60 * 1000; // 2 minutes in milli seconds
    
        /** CountDownTimer starts with 2 minutes and every onTick is 1 second */
        cdt = new CountDownTimer(twoMin, 1000) { 
    
            public void onTick(long millisUntilFinished) {
    
                total = (int) ((dTotal / 120) * 100);
                bar.setProgress(total);
            }
    
            public void onFinish() {
                 // DO something when 2 minutes is up
            }
        }.start();
    

    【讨论】:

    • @GauravAgarwal:不,基于它的 1-screen 源,它使用默认处理程序,因此每个 tickfinish 在 Main Looper(即 UI)上被调用。如果您想定期在后台执行某些操作,您可以在 onTick 上启动您的 AsyncTask
    【解决方案2】:

    我建议你使用进度对话框而不是使用进度条。再次设置它也可以使用线程进行中对话框。

    请查看此link。另外链接来自官方 android 博客。 Link 请参阅创建进度对话框 & 在第二个示例中使用线程。

    【讨论】:

    • 好的...如何通过线程进行中的对话框来实现它。您能否提供一些相同的链接或示例。
    【解决方案3】:

    Onkar... AsyncTask 既可以托管时间密集型任务,也可以报告进度,如果时间密集型任务可以分解为子任务。 AsyncTask 使用泛型来完成它的魔力。进度类型将是三个“必需的形式类型参数”的中间类型<Params,Progress,Result>

    日航

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      相关资源
      最近更新 更多