我试图显示一些文本后,另一个结束,我使用一个处理器与一个开关内的" for ",所以对于每个旋转等待5秒,并打印下一个文本,这是我的理论,但唯一我得到它的程序等待5秒,然后打印所有的文本在同一时间,任何帮助将不胜感激。
for (int i = 0; i < 4; i++) {
int finalI = i;
handler.postDelayed(new Runnable() {
@Override
public void run() {
switch (finalI){
case 0: twChoice1.animateText("text 1"); break;
case 1: twChoice2.animateText("text 2"); break;
case 2: twChoice3.animateText("text 3"); break;
case 3: twChoice4.animateText("text 4"); break;
}
}
}, 5000);
}发布于 2021-04-05 09:50:41
您必须使用Timer和TimerTask (导入这两个)。
private int messageIndex = 0;
private TextView[] txtViewsArray = {twChoice1, twChoice2, twChoice3, twChoice4};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
displayMessages();
}
private void displayMessages() {
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
public void run() {
if (index >= txtViewsArray.length) messageIndex = 0;
txtViewsArray[messageIndex].animateText("text" + (messageIndex + 1).toString());
messageIndex++;
}
};
timer.schedule(timerTask, 0, 5000);
}https://stackoverflow.com/questions/66946535
复制相似问题