Android ile Timer

Android Timer Kullanımı





Bu yazımızda bir geri sayım aracı yapmayı amaçlıyoruz.Örnek olarak 10:00 dan geriye doğru sayan bir sayaç düşünelim Sayacımız geriye doğru sayarken 9:00'dan 8:59 geçeceği zaman dakika ve saniye ayarını güncellemeli ayrıca herhangi bir zamanda durdurup devam ettirilebilmesi gerekir.Şimdi bu özellikler sahip geri sayım aracımızı yapmaya  başlayalım.

Önce herzamanki gibi yeni bir proje acıyoruz ve projemizin main_activty kısmında aşağıdaki resimdeki gibi android.support.constraint.ConstraintLayout kısmını silip yerine RelativeLayout yazmamız gerekiyor. 





Daha sonra main_activity kısmına aşağıdaki gibi bazı özellikler eklediğimiz Button ve TextView ekliyoruz.


<TextView
        android:id="@+id/countDown_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:text="10:00"
        android:textSize="50sp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        />

 <Button
        android:id="@+id/countDown_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Start"
        android:layout_below="@id/countDown_text"
        android:layout_centerHorizontal="true"


        />


Şimdi ise MainActivity kısmında private olarak daha sonra işimize yaracak olan değişkenlerimizi tanımlıyoruz.


 private TextView countDown_Text;
   private Button   countDown_Button;

   private CountDownTimer countDownTimer;
   private long timeLeftmInMilliseconds=60000;
   private boolean timeRunnig;

Şimdi de onCreate metodunun içerisinde Button Ve TextView'i tanımlıyoruz ardındanda butona tıklandığında gerçekleştirlmesini istediğimiz işlemler için onClick metodunu oluşturuyoruz.



   countDown_Text=(TextView)findViewById(R.id.countDown_text);
       countDown_Button=(Button)findViewById(R.id.countDown_button);
       countDown_Button.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               başlatbitir();

           }
       });

Şimdi de yukarıdaki kodda kullandığımız başlatbitir() metodunun gövdesini oluşturalım.
   public void başlatbitir(){
        if(timeRunnig){
            stopTimer();
        }
        else{
            startTimer();
        }
   }

Bu kodda da eğer timeRunnig true ise stopTimer metodunu çağırıyor eğer false ise startTimer metodunu çağırıyor. Bu durumda içerisini doldurmamız gereken metotlar bunlar olmalı.
 public void startTimer(){
        countDownTimer=new CountDownTimer(timeLeftmInMilliseconds,1000) {//countDownInterval=geri sayım aracı
            @Override
            public void onTick(long l) {//l=bitene kadar milisaniye
                timeLeftmInMilliseconds=l;// timeLeftmInMilliseconds=Milisaniye Olarak Kalan Süre
                upduteTimer();
            }

            @Override
            public void onFinish() {

            }
        }.start();
        countDown_Button.setText("PAUSE");
        timeRunnig=true;
    }


  public void stopTimer(){
        countDownTimer.cancel();
        countDown_Button.setText("START");
        timeRunnig=false;

    }

Bu metotlarla sayacın durdurulup çalıştırılması kontrol ediliyor.
Şimdi ise sayacın dakika saniye olayını güncellemesi için bir metot yazalım.


public void upduteTimer(){
    int minutes=(int) timeLeftmInMilliseconds / 60000;
    int seconds=(int) timeLeftmInMilliseconds % 60000 /1000;

    String timeLeftText;
    timeLeftText=" "+minutes;
    timeLeftText=":"+seconds;
    if(seconds<10) {
        timeLeftText += "0";
        timeLeftText+=seconds;
        countDown_Text.setText(timeLeftText);
    }



}

Bu metotdada her seferinde dakika saniyeyi tekrardan  hesaplıyor.



                      
Uygulamanın son hali de yukarıdaki gibi.. 

Comments

Popular posts from this blog

Firebase Nedir?, Nasıl Kullanılır Ve Özellikleri Nelerdir?

GÖRÜNTÜ İŞLEME

ANDROİD İLE FRAGMENT KAVRAMI