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 will use two variables, one is for the start time and another is for the interval. The start time is the start time from 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 all the time has been completed.