几个进度条怎么一个一个显示?
How can I show a few progress bars one by one?
我必须做这样的事情:
- 在数组列表的几条记录之间迭代。
- 显示一条记录的进度对话框
- 移至下一条记录
- 等等。
我在 for 循环中显示进度对话框时遇到问题。
我尝试了 TimerTask 和 运行 的多种变体。这是示例演示应用程序的最新代码。
//In function of showing progress
for (int i = 0; i < myInfo.size() ; i++){
Timer timer = new Timer();
timer.scheduleAtFixedRate(new ProgressTask(timer), 1000, 1000);
}
//Here is the ProgressTask
public class ProgressTask extends TimerTask {
Timer timer;
public ProgressTask (Timer timer){
this.timer = timer;
}
@Override
public void run() {
progressStatus = progressStatus + 10;
progressBar.setProgress(progressStatus);
if (progressStatus == 100) {
timer.cancel();
}
}
}
结果是:我只看到第一条记录的进度对话框。虽然它对所有记录执行 for 循环,但我在调度任务或我的 运行 线程或计时器时犯了一些错误。有人可以帮我解决我代码中的错误吗?
编辑:
Here 是整个 Activity 的代码,如果有帮助的话。
您的进度任务同时执行,因此您只会获得一个进度。所以调整你的延迟执行一个一个。
试试这个
for (int i = 0; i < 10 ; i++){
Timer timer = new Timer();
timer.scheduleAtFixedRate(new ProgressTask(timer), i * 1000, 1000);
}
public class ProgressTask extends TimerTask {
Timer timer;
public ProgressTask (Timer timer){
this.timer = timer;
}
@Override
public void run() {
progressStatus = progressStatus + 10;
progressBar.setProgress(progressStatus);
timer.cancel(); //Cancel timer all time bcoz you create new timer everytime.
}
}
我必须做这样的事情:
- 在数组列表的几条记录之间迭代。
- 显示一条记录的进度对话框
- 移至下一条记录
- 等等。
我在 for 循环中显示进度对话框时遇到问题。
我尝试了 TimerTask 和 运行 的多种变体。这是示例演示应用程序的最新代码。
//In function of showing progress
for (int i = 0; i < myInfo.size() ; i++){
Timer timer = new Timer();
timer.scheduleAtFixedRate(new ProgressTask(timer), 1000, 1000);
}
//Here is the ProgressTask
public class ProgressTask extends TimerTask {
Timer timer;
public ProgressTask (Timer timer){
this.timer = timer;
}
@Override
public void run() {
progressStatus = progressStatus + 10;
progressBar.setProgress(progressStatus);
if (progressStatus == 100) {
timer.cancel();
}
}
}
结果是:我只看到第一条记录的进度对话框。虽然它对所有记录执行 for 循环,但我在调度任务或我的 运行 线程或计时器时犯了一些错误。有人可以帮我解决我代码中的错误吗?
编辑:
Here 是整个 Activity 的代码,如果有帮助的话。
您的进度任务同时执行,因此您只会获得一个进度。所以调整你的延迟执行一个一个。
试试这个
for (int i = 0; i < 10 ; i++){
Timer timer = new Timer();
timer.scheduleAtFixedRate(new ProgressTask(timer), i * 1000, 1000);
}
public class ProgressTask extends TimerTask {
Timer timer;
public ProgressTask (Timer timer){
this.timer = timer;
}
@Override
public void run() {
progressStatus = progressStatus + 10;
progressBar.setProgress(progressStatus);
timer.cancel(); //Cancel timer all time bcoz you create new timer everytime.
}
}