将进度条与计时器同步

时间:2010-12-06 07:18:07

标签: android timer progress-bar

我想在点击按钮时同时使用音频文件更新我的ProgressBar。我还使用了根据音频文件长度运行的计时器,以秒为单位。

我已经配置了Timer,它根据音频文件的长度很好地增加但是我的ProgressBar不能正常工作。它给了我NumberFormatException。

我的代码:      class MyCount扩展了CountDownTimer           {             private int mycount;

        public MyCount(long millisInFuture, long countDownInterval) 
        {
          super(millisInFuture, countDownInterval);
        }

        public void onFinish() 
        {
          //timeDisplay.setText("done!");
        }
        public void onTick(long millsIncreasing) 
        {

        mycount++;
        mystring = formatTime(mycount*1000);
        myText.setText(mystring); 
        pBar.setProgress(Integer.parseInt(mystring));  (*****)
        pBar.setProgress(1000 * pBar.getProgress());
        /*String myString1 = mystring.substring(0, mystring.lastIndexOf(":")).trim();
        String myString2 = mystring.substring(mystring.lastIndexOf(":")+1, mystring.length()).trim();*/

我在支架上显示星星的行上得到了例外。 有人可以帮帮我吗 谢谢 大卫

1 个答案:

答案 0 :(得分:2)

因为你的函数返回一个字符串“12:34”(中间为:),这不是Integer.parse可以解析的数字格式。

你应该保留一个变量,该变量将保存文件时间长度的值(以秒为单位)

int fileLength

然后在你的函数中:

public void onTick(long millsIncreasing) 
{
    int progress = (int)Math.round(millsIncreasing / fileLength) * 100;
    Bar.setProgress(progress);

这假设millsIncreasing参数是ms。到目前为止处理。