Andengine 无法在循环内更新 SetText
Andengine cannot update SetText within a Loop
private void shell_loops() {
int x=house_no+1;
for(int i =temp;i>0;i--){
myhouse[x]++;
x++;
updatetext();
if(x==2)
{
x=0;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private void updatetext() {
text[0].setText(""+myhouse[0]);
text[1].setText(""+myhouse[1]);
}
文本必须更新每个 myhouse[] 增量是变化的。
它 运行 但文本更新只是最后一个循环。
这大概就是Thread.sleep(1000);过错。尝试使用 timerHandler 而不是它。
TimerHandler timer = new TimerHandler(1, true, new ITimerCallback() {
@Override
public void onTimePassed(TimerHandler pTimerHandler) {
updateText();
if(i == maxNumberOfLoops)
// unregister your timer e.g unregisterTimerHandler(pTimerHandler);
}
});
//注册你的定时器
private void shell_loops() {
int x=house_no+1;
for(int i =temp;i>0;i--){
myhouse[x]++;
x++;
updatetext();
if(x==2)
{
x=0;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private void updatetext() {
text[0].setText(""+myhouse[0]);
text[1].setText(""+myhouse[1]);
}
文本必须更新每个 myhouse[] 增量是变化的。 它 运行 但文本更新只是最后一个循环。
这大概就是Thread.sleep(1000);过错。尝试使用 timerHandler 而不是它。
TimerHandler timer = new TimerHandler(1, true, new ITimerCallback() {
@Override
public void onTimePassed(TimerHandler pTimerHandler) {
updateText();
if(i == maxNumberOfLoops)
// unregister your timer e.g unregisterTimerHandler(pTimerHandler);
}
});
//注册你的定时器