2

少し遅れてコードの実行を繰り返したい。以下はコードです。

public void hintrun(int i){
     Handler handler = new Handler();       
     for(int j = 1; j< i+1;j++) {
         handler.postDelayed(new Runna(j), 1000); 
     }
}

class Runna implements Runnable { 
    private int j;
    public Runna(int j2) {
        j=j2;
    }

    public void run() {  
        // some code
    }
}

しかし、それは機能していません。ループが3回実行されるとすると、コードはfor1000ミリ秒の直後に3回実行されます。各実行の間に1000ミリ秒のギャップが必要です。

4

3 に答える 3

2

この方法でループのコードを変更するだけです。

for(int j = 1; j< i+1;j++)
{
    handler.postDelayed(new Runna(j), 1000*j); // 1000 * J
}
于 2012-07-27T13:20:56.697 に答える
1

その後、交換してください

handler.postDelayed(new Runna(j), 1000); 

handler.postDelayed(new Runna(j), 1000*(i+1));
于 2012-07-27T13:19:40.613 に答える
1

Runnaの各実行の間にギャップが必要な場合。遅延している時間をインクリメントする必要があります。

例えば

handler.postDelayed(new Runna(j),1000 * j);
于 2012-07-27T13:20:39.073 に答える