萌新求助,一个简单Timer问题
androidstudio吧
全部回复
仅看楼主
level 1
羽__夜__ 楼主
初写手机程序,想做一个时钟控制1秒+1,并显示的程序
tv = findViewById(R.id.tv);
bt = findViewById(R.id.bt);
Timer timer;
timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
sum=sum+1;
j1=String.valueOf(sum);
tv.setText(j1); //就是这句,一加上编译的时候程序就闪退
}
};
timer.schedule(task, 0,1000)
}
我新加了一个button的onclick,用于tv.setText(j1);发现每次点击button,确实数据会随着时间变化,但是我希望每一次数据变化了,都自动显示,而不是需要点击button才显示数据。有大佬给点改进意见吗[乖]
2020年03月25日 14点03分 1
level 5
你把setText放在外部,用一个变量做数据更新
2020年03月26日 03点03分 2
level 8
线程里面不能进行UI操作。你弄个handle把数据传出来。也可以加我qq2019793673。不懂的可以问我噢
2020年03月26日 05点03分 3
level 5
timer本质上是个新的线程,android规定只有主线程才能修改UI
你在OnCreate里加这一句话:
Handler h =new Handler(){
@Override
public void handleMessage(Message msg){
tv.setText(String.valueOf(sum));
}
}
然后把你的Timer里tv.setText换成h.sendEmptyMessage(0)试试看
2020年04月01日 08点04分 5
1