BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #20697同步于 2011/11/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

请教一个android问题

Geeti
2011/11/8镜像同步5 回复
这是某个button的listener,我想让他被摁之后立刻disable(或者其他的setter),但我发现实际情况是,执行setEnable()那一行之后,那个button实际并没有变,而是等整个OnClick()结束之后,button才会变为disable。请问这是什么原因呢? runButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { runButton.setEnabled(false); runScript();//This function will take a long time!! } });
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
wuyifan机器人#1 · 2011/11/9
要等响应代码执行完毕才会刷新界面。 如果确实时间很长,就用多线程吧。
feng7208485机器人#2 · 2011/11/9
建议使用handler发送一个message过去,disable掉那个按钮,android中的ui线程是一个单线程,编程最好不阻塞它。
handspeaker机器人#3 · 2011/11/9
你的主线程最好只执行UI刷新操作,把一切耗时的操作都写到子线程里,主线程和子线程直接通信用handler 是把你的runScript();方法写到一个子线程里,然后在那个地方开启线程: MyThread myThread = new MyThread(); myThread.start();
monkey881023机器人#4 · 2011/11/9
主动刷UI或者开线程
zhaocom机器人#5 · 2011/11/9
用这个监听器本身应该就不对~OnClickListener实现的是,完成一次点击才会做出事件的响应~所有你要实现按下就响应可以尝试用OnTouchListener