android TextView不能循环赋值?
inti=0;while(true){title.setText("隔一秒变一下"+i);i++;try{Thread.sleep(1000);}catch(Interr...
int i = 0;
while (true) {
title.setText("隔一秒变一下" + i);
i++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
为什么这个循环只能执行一次,而第二次时就会出错意外终止? 展开
while (true) {
title.setText("隔一秒变一下" + i);
i++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
为什么这个循环只能执行一次,而第二次时就会出错意外终止? 展开
3个回答
展开全部
android 不能在非主线程更新UI,你应该用Handler.sendMessage()
当handler收到消息后更新UI
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
title.setText("隔一秒变一下" + msg.what);
}
};
public void test() {
int i = 0;
while (true) {
i++;
try {
handler.sendEmptyMessage(i);
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
当handler收到消息后更新UI
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
title.setText("隔一秒变一下" + msg.what);
}
};
public void test() {
int i = 0;
while (true) {
i++;
try {
handler.sendEmptyMessage(i);
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询