返回数组的方法

时间:2012-03-28 22:06:04

标签: android arrays class methods call

在我的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();

1 个答案:

答案 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();