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 回答