自己写的代码 有点乱 请多见谅!(文章中---打印部分内容请忽略---为的是调试的时候看执行到哪里,还有数据的对错)
首先 定义一个类,用来存放信息----------------------------------------------------------------方法1
public void timer(){ String local = "GMT+8"; cal = new GregorianCalendar(TimeZone.getTimeZone(local)); cal.setTimeInMillis(Calendar.getInstance().getTimeInMillis()); String time = cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND); System.out.PRintln("TimeTest.method3() date="+time); System.out.println("---------------"+"miao"+cal.get(Calendar.SECOND)+"---------------------------------"); System.out.println("---------------"+"fen"+cal.get(Calendar.MINUTE)+"---------------------------------"); //这里得到 小时 ----注意:这里是24小时制,项目中因为在每天10点--22点 从10点开始每10分钟开始一次倒计时,朋友根 // 据情况---自行修订 ----判断就不多说了hour=cal.get(Calendar.HOUR_OF_DAY); if(hour>=10&&hour<22) { miao = 60 - cal.get(Calendar.SECOND); System.out.println("---------------" + "miao-----" + miao + "---------------------------------");//下方的判断 解释:因为每次都是从第10分钟开始倒计时 如9分59秒--9分58秒---0分0秒---9分59秒------明白?? int getminute=cal.get(Calendar.MINUTE); if(cal.get(Calendar.MINUTE)>0&&cal.get(Calendar.MINUTE)<10){ fen=9-cal.get(Calendar.MINUTE); System.out.println("--------1----------"+fen+"-----------1--------"); }else if(cal.get(Calendar.MINUTE)>10&& cal.get(Calendar.MINUTE)<20){ fen=9-(cal.get(Calendar.MINUTE)-10); System.out.println("---------2---------"+fen+"----------2---------"); }else if(cal.get(Calendar.MINUTE)>20&& cal.get(Calendar.MINUTE)<30){ fen=9-(cal.get(Calendar.MINUTE)-20); System.out.println("--------3----------"+fen+"----------3---------"); }else if(cal.get(Calendar.MINUTE)>30&& cal.get(Calendar.MINUTE)<40){ fen=9-(cal.get(Calendar.MINUTE)-30); System.out.println("---------4---------"+fen+"--------4-----------"); }else if(cal.get(Calendar.MINUTE)>40&& cal.get(Calendar.MINUTE)<50){ fen=9-(cal.get(Calendar.MINUTE)-40); System.out.println("-----------5-------"+fen+"---------5----------"); }else if(cal.get(Calendar.MINUTE)>50&& cal.get(Calendar.MINUTE)<60){ fen=9-(cal.get(Calendar.MINUTE)-50); System.out.println("----------6--------"+fen+"--------6-----------"); }else if(getminute==0||getminute==10||getminute==20||getminute==30||getminute==40||getminute==50||getminute==60){ fen=9;//上方 判断是否是0 或者10.。。。。必须要写 否则每次到0开始又重新倒计时的时候就会依赖上次的时间开始 } //计一个总数 给下方 用 count=miao*1000+fen*60000;//这里调用了下方的方法 给其赋值 mc = new MyCountDownTimer(count, 1000); mc.start(); }else { mtv_times.setText("--"+"秒"); mtv_fen.setText("--"+"分"); }}//下方的方法是没隔多长时间 调用一回-----------------------------------方法2class MyCountDownTimer extends CountDownTimer { /** * * * * @param millisInFuture * * 表示以毫秒为单位 倒计时的总数 * * * * 例如 millisInFuture=1000 表示1秒 * * * * @param countDownInterval * * 表示 间隔 多少微秒 调用一次 onTick 方法 * * * * 例如: countDownInterval =1000 ; 表示每1000毫秒调用一次onTick() * * * */ public MyCountDownTimer(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); } @Override public void onTick(long millisUntilFinished) { mtv_fen.setText(millisUntilFinished/60000+"分"); long cc= millisUntilFinished / 1000; System.out.println("------cc"+cc+"----------------------"); long jj=millisUntilFinished / 60000; System.out.println("------jj"+jj+"----------------------"); long jjs=jj*60; System.out.println("------jjs"+jjs+"----------------------"); long mm=cc-jjs; if(cc==jjs){ mtv_times.setText(mm+"秒"); }else { mtv_times.setText(mm-1+"秒"); } } @Override public void onFinish() { if (mc!=null){ mc.cancel(); mc=null; }//这里很关键了, 为的就是当我倒计时为0分0秒的时候在重新调用一下这个方法 然后再重新开始倒计时-----不多说了 timer(); }}//销毁 --------------------道理你懂得---------------------------方法3@Overridepublic void onDestroy() { super.onDestroy(); if (mc!=null){ mc.cancel(); }}//开启----------------------------项目运行开启--------方法4@Overridepublic void onStart() { super.onStart(); //调用这个倒计时 timer();}//自己生命的一些变量-----------------------------------变量---供参考mtv_times=(TextView)mV.findViewById(R.id.tv_times);//秒mtv_fen=(TextView)mV.findViewById(R.id.tv_fen);//分private Calendar cal;private int fen;private int miao;private int hour;private int count;private TextView mtv_times;private TextView mtv_fen;private MyCountDownTimer mc;//布局文件就不给大家看了 很简单 就是一个布局放了2个-----textview好的 希望可以帮到大家!如有疑问 请随时联系---me
新闻热点
疑难解答