自己寫的代碼 有點亂 請多見諒?。ㄎ恼轮?--打印部分內容請忽略---為的是調試的時候看執行到哪里,還有數據的對錯)
首先 定義一個類,用來存放信息----------------------------------------------------------------方法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
新聞熱點
疑難解答