我正在开发一个Android项目中的Java类,它总结了以前类中保存的数组条目,每个条目本身都是一个包含多个元素的数组。
我已经创建了在条目中向前和向后移动的方法,但是考虑到可以有超过100个条目,我想创建另一个循环遍历它们的方法,而不是一遍又一遍地按下“下一步”按钮。 有没有办法做到这一点?
我发现循环只显示最后一个条目,但下面是我能想到的最好的例子,我需要的。
for (int i = Selection; i<=Qty; i++){
Num.setText(Integer.toString(i));
loadNext();
try{
Thread.sleep(1500);
}catch(InterruptedException e){}
if (Brk=true){
break;
}
}
答案 0 :(得分:2)
最接近原始答案的解决方案是创建一个后台线程来执行循环,将每个项目加载到Activity.runOnUiThread()
中。您还可以使用AsyncTask
和进度更新执行类似的操作。有关这两者的更多信息,请参阅此文章:
http://developer.android.com/resources/articles/painless-threading.html
但是,更好的解决方案是根本没有循环 - 只需要一个计时器,并在每次计时器运行时增加循环变量。
答案 1 :(得分:1)
它可能有用。但是,每次调用sleep
方法时,都会导致UI冻结。通常,当您处理UI内容时,请不要使用Thread
类。相反,请使用Handler
类。有很多文档但是如果在你彻底搜索之后,你找不到一个好的例子就让我知道。
答案 2 :(得分:1)
您的中断条件似乎错误,并在第一次迭代时导致循环中断:
if (Brk=true){
break;
}
Brk=true
是一个分配异常,而不是比较异常。它将永远返回真实。表达式应为Brk==true
以检查变量值是否为真。但同样,它是一个布尔变量,所以你不需要比较,但只需在if语句中引用它:
if (Brk){
break;
}