在我的android项目中,我有一个倒计时,为数组随机化一个布尔值。问题是,每次滴答时它总是创建数组和for循环。有人可以帮我如何在单独的类和方法上导入我的代码吗?我只是想在我的倒计时中调用数组的返回值,而它在一个单独的类上循环。请帮助我,TIA! :)
这是我在onCreate()中的倒计时:
new CountDownTimer(300000, 1000) {
public void onTick(long msUntilFinished) {
txtCounter.setText("" + msUntilFinished/1000);
ImageView[] pic= {img1, img2, img3, img4, img5};
Random aRandom = new Random();
for (int i=0;i<12;i++){
arrays[i] = aRandom.nextBoolean();
if(arrays[i]){
pic[i].setImageResource(R.drawable.show);
appear = true;
} else {
pic[i].setImageResource(R.drawable.hide);
appear = false;
}
}
} // end of onTick
public void onFinish() {
txtCounter.setText("done!");
}
}.start();
答案 0 :(得分:0)
如果您不希望每次刻度时都创建数组,只需将数组初始化放在线程之外,如下所示:
for (int i=0;i<12;i++){ arrays[i] = aRandom.nextBoolean();}
new CountDownTimer(300000, 1000)
{
...
}.start();
重要:“数组”必须是最终的。如果你不能这样做,那么你必须这样做:
for (int i=0;i<12;i++){ arrays[i] = aRandom.nextBoolean();}
final SomeClass[] finalArray = arrays;
new CountDownTimer(300000, 1000)
{
...
if(finalArray[i]) ...
...
}.start();