我想在点击按钮时同时使用音频文件更新我的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();*/
我在支架上显示星星的行上得到了例外。 有人可以帮帮我吗 谢谢 大卫
答案 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。到目前为止处理。