ایجاد شمارنده معکوس در اندروید

یکشنبه 13 دی 1394

در این مقاله قصد داریم یک شمارنده معکوس که با قابلیت شروع شمارش زمان و توقف شمارش زمان با استفاده از دکمه باشد را در اندروید آموزش دهیم.از این نمونه می توان به عنوان شمارنده در اپلیکیشن های خود استفاده نماییم.

ایجاد شمارنده معکوس در اندروید

در این مقاله ما از یک دکمه استفاده می کنیم که با زدن دکمه شمارش معکوس شروع می شود و بازدن دکمه دوباره شمارش توقف می یابد.

قدم اول ایجاد یک پروژه ی جدید به صورت زیر است

قدم دوم درست کردن فایل activity به صورت زیر است:

<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="شروع" />
</RelativeLayout>

قدم بعدی درست کردن کلاس جاوا به صورت زیر است:

package com.barnamenevisan.CountDownTimer;

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 MyActivity 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;
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.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);

        }
    }

}

و در آخر باید کلاس activity مورد نظر را در فایل androidmanifest معرفی نمایید به صورت زیر:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.barnamenevisan.CountDownTimer"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="15"/>
    <application android:label="@string/app_name" android:icon="@drawable/pic8">
        <activity android:name="MyActivity"
                  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>

خروجی به صورت زیر خواهد بود:

این شمارنده زمانی که زمان به پایان برسد را هم نمایش خواهد داد.

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید