2

TextView の配列から多くの文字列値を表示する必要があります。これには Runnable を使用しています。しかし、それは一度だけ実行されます!for ループを配置すると、コードでエラーがスローされます。

Runnable hMyTimeTask = new Runnable() {
    public void run() {
        nCounter++;
        label.setText(rates[nCounter]);
    }
};

try {
    handler.removeCallbacks(hMyTimeTask);
    handler.postDelayed(hMyTimeTask, 1000); // delay 1 second
} catch (Exception e) {
    e.printStackTrace();
}

for ループの使用:

Runnable hMyTimeTask = new Runnable() {
    public void run() {
        for (int i = 0; i < rates.length; i++) {
            label.setText(rates[i]);
        }
    }
};

try {
    handler.removeCallbacks(hMyTimeTask);
    handler.postDelayed(hMyTimeTask, 1000); // delay 1 second
} catch (Exception e) {
    e.printStackTrace();
}
4

1 に答える 1

1

これには runnable を使用しています。しかし、それは一度だけ実行されます!

Runnable 内で、Runnable を再度投稿して繰り返す必要があります。

Runnable hMyTimeTask = new Runnable() {
    public void run() {
        nCounter++;
        if(nCounter >= rates.length)
            nCounter = 0;
        label.setText(rates[nCounter]);

        // Run this again
        handler.postDelayed(this, 1000); // delay 1 second
    }
}; 
于 2013-03-22T15:45:43.453 に答える