Thursday, January 9, 2014

Countdown example in Android | Custom timer example in Android | Start, Pause, Stop digital watch code in Android | Java code for timer

Hello Friends,

Today I am going to share code for countdown in android.

Screen shot:


MainActivity.java

 package com.manish.timer;  
 import java.util.concurrent.TimeUnit;  
 import android.annotation.SuppressLint;  
 import android.annotation.TargetApi;  
 import android.app.Activity;  
 import android.os.Build;  
 import android.os.Bundle;  
 import android.os.CountDownTimer;  
 import android.view.View;  
 import android.view.View.OnClickListener;  
 import android.widget.Button;  
 import android.widget.TextView;  
 @TargetApi(Build.VERSION_CODES.GINGERBREAD)  
 @SuppressLint("NewApi")  
 public class MainActivity extends Activity {  
      Button btnStart, btnStop;  
      TextView textViewTime;  
      @Override  
        public void onCreate(Bundle savedInstanceState) {  
          super.onCreate(savedInstanceState);  
          setContentView(R.layout.activity_main);  
          btnStart = (Button)findViewById(R.id.btnStart);  
          btnStop = (Button)findViewById(R.id.btnStop);  
          textViewTime = (TextView)findViewById(R.id.textViewTime);  
          textViewTime.setText("00:03:00");   
          final CounterClass timer = new CounterClass(180000,1000);  
          btnStart.setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View v) {  
              timer.start();  
            }  
          });  
          btnStop.setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View v) {  
              timer.cancel();  
            }  
          });  
        }  
      @TargetApi(Build.VERSION_CODES.GINGERBREAD)  
      @SuppressLint("NewApi")  
      public class CounterClass extends CountDownTimer {  
           public CounterClass(long millisInFuture, long countDownInterval) {  
                super(millisInFuture, countDownInterval);  
           }  
           @Override  
          public void onFinish() {  
            textViewTime.setText("Completed.");  
          }  
           @SuppressLint("NewApi")  
           @TargetApi(Build.VERSION_CODES.GINGERBREAD)  
           @Override  
           public void onTick(long millisUntilFinished) {  
                 long millis = millisUntilFinished;  
                  String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),  
                      TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),  
                      TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));  
                  System.out.println(hms);  
                  textViewTime.setText(hms);  
           }  
      }  
 }  

activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>  
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
   android:layout_width="fill_parent"  
   android:layout_height="fill_parent"  
   android:orientation="vertical" >  
   <Button  
     android:id="@+id/btnStart"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:layout_alignParentLeft="true"  
     android:layout_centerVertical="true"  
     android:layout_marginLeft="28dp"  
     android:text="Start" />  
   <Button  
     android:id="@+id/btnStop"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:layout_alignParentRight="true"  
     android:layout_centerVertical="true"  
     android:layout_marginRight="67dp"  
     android:text="Stop" />  
   <TextView  
     android:id="@+id/textViewTime"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:layout_above="@+id/btnStop"  
     android:layout_centerHorizontal="true"  
     android:layout_marginBottom="17dp"  
     android:textSize="25sp" />  
 </RelativeLayout>  

Download zip code

Thank you!