android 简单的倒计时器

    技术2022-05-20  44

    自己做的一个简易的倒数计时器。用一个线程和handler做的。 输入设定的时间的界面:是SetTime的Acitivity 点击确定后转到下面的界面:CountdownTimer的Acitivity 暂停后的界面: 有什么错误或不足之处还请各位指点: 项目文件请到http://muyizhou.download.csdn.net/下载,0分。

    环境:ubuntu10.04+eclipse galileo 部分代码贴出来:         //实现三个按钮操作的内部类     private View.OnClickListener listener= new View.OnClickListener(){         @Override         public void onClick(View v) {             // TODO Auto-generated method stub             switch(v.getId()){             case R.id.start:             {                 //开始计时                 updateHandler.post(updateThread);                 break;             }             case R.id.pause:             {                 //暂停计时                 updateHandler.removeCallbacks(updateThread);                 break;             }             case R.id.reset:             {                  //重新设置                  updateHandler.removeCallbacks(updateThread);                  Intent intentReset=new Intent();                  intentReset.setClass(CountdownTimer.this, SetTime.class);                  CountdownTimer.this.startActivity(intentReset);                  break;             }             }         }                };     //处理数据的线程,使用匿名内部类。     Runnable updateThread = new Runnable(){         @Override         public void run() {             //获取消息             Message msg=updateHandler.obtainMessage();                         try{                 Thread.sleep(1000);             }catch(InterruptedException e){                 e.printStackTrace();             }             while(time>0){             time--;             break;             }             hoursInt=time/3600;             minutesInt=(time-hoursInt*3600)/60;             secondsInt=time-hoursInt*3600-minutesInt*60;             //把此消息发送到消息队列中             updateHandler.sendMessage(msg);             //如果计时为0,就updateThread线程从线程队列中删除掉             if(time==0){                 updateHandler.removeCallbacks(updateThread);             }         }};               Handler updateHandler=new Handler(){         //把消息从消息队列中取出处理         public void handleMessage(Message msg){             seconds.setText(secondsInt+"");             minutes.setText(minutesInt+"");             hours.setText(hoursInt+"");             updateHandler.post(updateThread);                     }     };    }


    最新回复(0)