خانه اندروید

800 ساعت آموزش اختصاصی

بیش از 30 هزار دانشجو

آموزش های پروژه محور

مطالب پیشنهادی حتما مشاهده کنید :

فیلم آموزش تایمر Timer اندروید استودیو

فیلم آموزش تایمر Timer اندروید استودیو

فیلم آموزش تایمر Timer اندروید استودیو

آموزش اندروید استودیو ایجاد کردن تایمر timer 

تایمر Timer ، عرض سلام خدمت کاربران محترم سایت خانه اندروید با یکی دیگر از آموزش اندروید استودیو در خدمت شما عزیزان هستیم .توی این آموزش می خواهیم ایجاد کردن یک تایمر timer رو خدمتون آموزش بدیم.مثالی که میشه برای این مورد مطرح کرد timer تلگرام که وقتی شما شماره همراه خودتان را وارد می کنید برای فعال سازی حساب کاربری اگر کمی دقت کنیم تایمری درحال شماره هست و این مفهوم رو به کاربر میرسونه که باید ۴ دقیقه منتظر بمونه تا اس ام اس فعال سازی ارسال بشه.

حتما بخوانید آموزش های پیشنهادی :

دریافت اطلاعات از سمت سرور ذخیره در دیتابیس Sqlite اندروید استودیو
فیلم آموزش اشتراک گذاری اندروید استودیو
فیلم آموزش استفاده از Fragment و عمل Toast اندروید استودیو

شروع آموزش ایجاد کردن تایمر اندروید استودیو :

لطفا پروژه جدیدی را در اندروید استودیو ایجاد کنید سپس در بخش xml یک Textview و Button رو قرار بدین.

Timer اندروید استودیو

سورس کد xml :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="application.homeandroid.com.homeandroid.timer_activity">

    <TextView
        android:id="@+id/txt_timer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:textSize="25sp"
        android:textAlignment="center"
        android:layout_centerVertical="true"/>
    <Button
        android:id="@+id/btn_send_sms"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="18dp"
        android:text="ارسال مجدد اس ام اس "
        android:padding="10dp"
        android:textAlignment="center"
       android:layout_below="@+id/txt_timer"/>



</RelativeLayout>

پس از اینکه اکتیویتی قسمت دیزاین را ایجاد کرده ایم حالا میرم سراغ قسمت کد نویسی جاوا :

import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Locale;
import java.util.Timer;
import java.util.TimerTask;

public class timer_activity extends AppCompatActivity {
     TextView txt_timer;
     Button btn_send_sms;
    Timer timer;
    long timercount;
    int check;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_timer);
        txt_timer= (TextView) findViewById(R.id.txt_timer);
        btn_send_sms= (Button) findViewById(R.id.btn_send_sms);
        gettime();
        btn_send_sms.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(check==1)
                {

                }
                else
                {
                    Toast.makeText(timer_activity.this, "لطفا تا ۴ دقیقه منتظر بمانید...", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

    void gettime()
    {
        timercount=10000;
        timer=new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        timercount-=1000;
                        txt_timer.setText(gettimergn(timercount));
                        if(timercount==0)
                        {
                            timer.cancel();
                            txt_timer.setText("00 : 00 ");
                            txt_timer.setTextColor(ContextCompat.getColor(getApplicationContext(),R.color.read));
                            check=1;
                        }
                    }
                });
            }
        },۰,۱۰۰۰);
    }

    public  String  gettimergn(long timercount)
    {
        long secound=(timercount/1000);
        long mint=secound/60;
        secound %=60;
         return String.format(Locale.ENGLISH,"%02d",mint)+" : "+String.format(Locale.ENGLISH,"%02d",secound);
    }

}

لطفا فیلم آموزشی را جهت توضیحات بیشتر ببنید.

 

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

جواد محمدی هستم بنیان‌گذار سایت خانه اندروید در خدمتون هستیم با آموزش و مفاهیم برنامه نویسی اندروید-نزدیک به 10 سال هست در حوزه برنامه نویسی فعالیت می کنم. مسلط به kotlin,java,flutter,php هستم . در خانه اندروید دانستی های خودم را در اختیار تمامی علاقمندان به برنامه نویسی قرار میدم.تشکر از اینکه خانه اندرورید رو دنبال می کنید.

قبل از ارسال دیدگاه

  • قبل از ارسال دیدگاه: لطفا دیدگاه خودتون رو فقط در مورد این مطلب بنویسید.سپاسگزارم.

    دیدگاه های طولانی نادیده گرفته می شوند لذا دیدگاه خودتان را در دو خط خلاصه کنید.

    دیدگاه های که شامل توهین یا متن توهین آمیز اصلا تایید نمی شود.

    به دیدگاه های بی نام و نشان که ایمیل فیک و نام فیک وارد می کنند پاسخ داده نمی شود

5 دیدگاه

  1. مصیب گفت:

    با سلام و خسته نباشید.
    یه سوال داشتم ممنون می شم جواب بدید.
    تایمری توی اکتیویی شماره ۱ دارم که هر چند ثانیه یک بار داره فعالیتی رو تکرار میکنه.
    توی همون اکتیویتی روی دکمه ای میزنم و به اکتیویی شماره ۲ می رم.
    منتها می خوام تا اکتیویی شماره ۲بازه تایمر توی اکتیویتی شماره ۱ غیرفعال بشه و در صورتی که اکتیویتی شماره ۲ بسته بشه و اکتیویتی ۱ ظاهر بشه دوباره تایمر فعال بشه.
    من اومدم توی رویداد onStop اکتیویتی ۱ تایمر رو کنسل کردم ولی مشکل اینه که نمی دونم با ظاهر شدن اکتیویتی ۱ متلا توی رویداد onResume چطوری تایمر رو دوباره فعال کنم.
    لطفا راهنماییم کنید.
    ممنون.

  2. میثم گفت:

    سلام مرسی از آموزش خوبتون خسته نباشید.
    فقط یه سوال اگه بخوایم ساعت رو هم حساب کنیم چجوری میشه؟

    • میثم گفت:

      اینو زدم اوکی شد گذاستم برای بقیه دوستان ک استفاده کنن

      public String gettimergn(long timercount)
      {
      long secound=(timercount/1000);
      long mint=secound/60;
      mint%=60;
      long hour=secound/3600;
      secound %=60;

      return String.format(Locale.ENGLISH,”%02d”,hour)+” : “+String.format(Locale.ENGLISH,”%02d”,mint)+” : “+String.format(Locale.ENGLISH,”%02d”,secound);
      }