一个接一个地显示文本 Android
Displaying text one after another Android
我试图在另一个结束后显示一些文本,我使用一个带有“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);
}
您必须使用 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);
}
我试图在另一个结束后显示一些文本,我使用一个带有“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);
}
您必须使用 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);
}