Introduction
This article explains about CountDownTimer in Android using Android Studio.
In this application you can count the time after clicking on the button. You can set the time depending on your needs by changing values in this code. In this first you wil use two variables, one is for the start time and another is for interval. The start time is the start time from a value, in this I have started the timer at 100. An Interval variable is used for how much time the time will be decreased. Create the id of a button, textview and create a class CountDownActivty that extends CountDownTimer. The CountDownTimer class provides onFinish() and onTick() methods.
Step 1
Create a project like this:
Select "File" -> "New Project" -> "Android Application".
Step 2
Create an XML file and write this:
<?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"
android:background="#ff998765" >
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:paddingRight="10dip"
android:textSize="50dp" />
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="Start" />
</RelativeLayout>
Step 3
Create a Java file and write this:
package com.countdown;
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements View.OnClickListener {
private CountDownTimer countDownTimer;
private boolean timerStarted = false;
private Button buttonStart;
public TextView textView;
private final long startTime = 100 * 1000;
private final long interval = 1 * 1000;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonStart = (Button) this.findViewById(R.id.button);
buttonStart.setOnClickListener(this);
textView = (TextView) this.findViewById(R.id.textView);
countDownTimer = new CountDownTimerActivity(startTime, interval);
textView.setText(textView.getText() + String.valueOf(startTime/1000));
}
@Override
public void onClick(View v) {
if (!timerStarted) {
countDownTimer.start();
timerStarted = true;
buttonStart.setText("STOP");
} else {
countDownTimer.cancel();
timerStarted = false;
buttonStart.setText("RESTART");
}
}
public class CountDownTimerActivity extends CountDownTimer {
public CountDownTimerActivity(long startTime, long interval) {
super(startTime, interval);
}
@Override
public void onFinish() {
textView.setText("Time's up!");
}
@Override
public void onTick(long millisUntilFinished) {
textView.setText("" + millisUntilFinished/1000);
}
}
}
Step 4
Android Manifest.xml file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.countdown"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.countdown.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Step 5
When you click on the button to start.
Image
When you stop the watch.
When all the time has been completed.