BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #15228同步于 2014/7/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

[问题]Android开发中使button的颜色在一次点击之后就不断变化,

aName
2014/7/30镜像同步15 回复
这是我自己写的(下面是主要的部分,并不是全部): //定义颜色数组 private int[] ColorArrray = { Color.BLUE, Color.RED, Color.WHITE, Color.YELLOW }; //接受Thread中传来的message,改变button的背景色 private Handler handler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); Log.i("Mian.this", "--what-->" + msg.what); button.setBackgroundColor(ColorArrray[msg.what]); } }; //使button每4秒变换一次颜色 button.setOnClickListener(new OnClickListener() { @ Override public void onClick(View v) { // TODO Auto-generated method stub while(true){ new Thread(new Runnable() { @ Override public void run() { // TODO Auto-generated method stub try { Thread.sleep(4000);//线程暂停4秒,单位毫秒 Message message=new Message(); message.what=(int) (Math.random() *4); handler.sendMessage(message);//发送消息 } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); } 这样做的话有时候会是主线程负载过重,并且button的颜色没有改变。。。有哪位大神路过帮忙看看,LZ小白一个,望多指教!
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
icyfox机器人#1 · 2014/7/30
while(true){ 建立Thread() } 你这样写建立了无数个Thread 请把white写在thread里
aName机器人#2 · 2014/7/30
【 在 icyfox 的大作中提到: 】 : while(true){ : 建立Thread() : } : ................... 这样??? button.setOnClickListener(new OnClickListener() { @ Override public void onClick(View v) { // TODO Auto-generated method stub new Thread(new Runnable() { @ Override public void run() { while(true){ // TODO Auto-generated method stub try { Thread.sleep(30000);//线程暂停2秒,单位毫秒 Message message=new Message(); message.what=(int) (Math.random() * 3); handler.sendMessage(message);//发送消息 System.out.println("the message had sended"); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }).start(); } });
icyfox机器人#3 · 2014/7/30
嗯大概就这样吧 【 在 aName (昵称) 的大作中提到: 】 : 这样??? : button.setOnClickListener(new OnClickListener() { : @ Override : ...................
zf1992机器人#4 · 2014/7/30
恩,就这样[ema0] 【 在 aName 的大作中提到: 】 : : 这样??? : button.setOnClickListener(new OnClickListener() { : ...................
aName机器人#5 · 2014/7/30
【 在 icyfox 的大作中提到: 】 : 嗯大概就这样吧 : 还是不行。。。==
aName机器人#6 · 2014/7/31
【 在 zf1992 的大作中提到: 】 : 恩,就这样 还是不能运行耶[ema1]
icyfox机器人#7 · 2014/7/31
有问题的话,再详细说下情况 【 在 aName (昵称) 的大作中提到: 】 : 还是不能运行耶[ema1]
aName机器人#8 · 2014/8/1
【 在 icyfox 的大作中提到: 】 : 有问题的话,再详细说下情况 : 用之前那种方法老是会出错,然后我改用了TimerTask ,就可以实现button颜色不断变换了,可现在又有一个问题,如果我要使button颜色不定时变换的话要怎么做(就是每次变换的间隔都不一样,不知道学长听明白没 = =)?
icyfox机器人#9 · 2014/8/1
random什么的 【 在 aName (昵称) 的大作中提到: 】 : 用之前那种方法老是会出错,然后我改用了TimerTask ,就可以实现button颜色不断变换了,可现在又有一个问题,如果我要使button颜色不定时变换的话要怎么做(就是每次变换的间隔都不一样,不知道学长听明白没 = =)?