2012-01-19 19 views
1

我正在研究一个Android项目中的Java类,该项目汇总了以前类中保存的数组条目,每个条目本身都是具有多个元素的数组。在循环,Java和Android中使用方法

我已经创建了方法来向前和向后通过条目,但考虑到可以有超过100个条目,我想创建另一个方法循环遍历它们而不是一遍又一遍地按下“Next”按钮。 有没有办法做到这一点?

我发现,循环只会显示最后一个条目,但下面是我能想到的是什么,我需要的,最好的例子。

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

我不了解Android,但在Swing中有一个专用的UI线程。如果它在Android上类似,则必须生成另一个执行循环的线程。否则,UI更新可能会被阻止。 – Thomas

回答

1

它可能工作。但是,它会导致你的UI在每次调用sleep方法时间内冻结。一般来说,当你正在处理UI的东西,从来不使用Thread类。相反,使用Handler类。有很多文件,但如果之后你有穷尽搜索,你不能找到一个很好的例子,只是让我知道。

1

你休息状态似乎是错误的,并导致在第一次迭代循环游:

if (Brk=true){ 
     break; 
    } 

Brk=true是分配新建分配FY例外,而不是比较 - 例外。它将永远返回true。表达式应该是Brk==true来检查变量值是否为真。但同样,它是一个布尔变量,所以你不需要去比较,而只是引用它的if语句:

if (Brk){ 
     break; 
    } 
2

这将是最接近原始的答案是创建一个后台解决方案执行循环的线程,加载Activity.runOnUiThread()中的每个项目。您还可以使用AsyncTask和进度更新来做类似的事情。看到这两个本文的详细信息:

http://developer.android.com/resources/articles/painless-threading.html

然而,一个更好的解决方案是不是有一个循环的话 - 只是有一个计时器,每一次增加你的循环变量定时器运行。