2012-03-28 86 views
0

在我的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

你是在談論從另一個類的函數調用返回值或我缺少的東西嗎? – Kevin 2012-03-28 22:15:27

+0

是的..我打算把我的數組放在一個單獨的類的函數中,並使用for循環通過倒計數方法調用它的索引。我仍然不熟悉方法調用,希望在這裏學習..順便說一句,感謝您的答覆。 – 2012-03-28 22:20:13

回答

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(); 
+0

非常感謝kirdie!將嘗試儘快!:) – 2012-03-28 22:25:07

+0

很高興幫助!請標記爲正確的答案,如果它正常工作,並且upvote,如果你認爲它值得它:-) – 2012-03-28 22:29:45

+0

還有一件事,我希望我的數組可以在我的所有方法中訪問..我在哪裏可以把它放在類下面?我還應該用最後的?我有一個onClick()方法。我也想讓它循環我的數組。 – 2012-03-28 22:46:30