Android ile Countdown Timer (Zamanlayıcı) Örneği

Android ile Countdown Timer (Zamanlayıcı) Örneği

Android CountDown Timer Ekran GörüntüsüBu yazıda android ile basit bir şekilde nasıl zamanlayıcı (CountDown) yapabiliriz sorusuna çözüm üretmiş olacağız. CountDown Timer örneğini anlayabilmek için android ile “Merhaba Android” uygulaması yapabilmeniz yeterli.
Uygulamamız sadece bir adet TextView’den oluşacak. Bunun için öncelikle eclipse’de yeni bir android projesi oluşturalım.

Android CountDown Timer Proje Oluşturma

Resim-1 Android CountDown Timer Proje Oluşturma

Projemizi oluşturduktan sonra şimdide res/layout(resim2) altındaki main.xml dosyamızda bir adet TextView oluşturalım.

Android CountDown Timer Dizin Görünümü

Resim-2 Android CountDown Timer Dizin Görünümü

Şimdi de DownCounter.java activity classımızın içerisinden main.xml dosyamızda belirttiğimiz TextView’a zamanlayıcımızı kuralım.
Bunun için öncelikle global countDown isminde TextView oluşturalım sonrada oncreate metodumuzda buna main.xml içerisindeki tanımladığımız countdown id’sine sahip olan Textview’ımızı atayalım. Devamında CountDownExample adında CountDownTimer class’ını extend eden bir class oluşturalım. Bunun içerisinde CountDownTimer’ı extend ettiğimiz için override etmek zorunda olduğumuz iki metodu ekleyelim. Bu methodlardan onTick metodunda countDown’ı oluşturken belirleyeceğimiz milisaniye aralıklarında işlem yaptırabilmemizi sağlar. onFinish metodu ise CountDown bittikten sonra ne yapmak istiyorsak burada implement ediyoruz. CountDownExample classını oluşturduktan sonra countDownExample adında bir CountDowntimer oluşturup start() diyoruz.

package com.trandroid;

import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.widget.TextView;

public class DownCounter extends Activity {

TextView countDown;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

countDown = (TextView) findViewById(R.id.countdown);
CountDownTimer countDownExample = new CountDownExample(30000, 1000);
countDownExample.start();

}

public class CountDownExample extends CountDownTimer{

public CountDownExample(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}

@Override
public void onTick(long millisUntilFinished) {

countDown.setText("" + millisUntilFinished/1000);
}

@Override
public void onFinish() {

countDown.setText("Süre Doldu");
}
}
}
Android CountDown Timer Ekran Görüntüsü

Resim-3 Android CountDown Timer Ekran Görüntüsü

Bu yazının devamı niteliğinde olan CountDown Timer’ı durdurma ve devam etme özellikleri olan yeni bir yazı da buluşmak üzre.

Fatih IŞIK

Başarılı başarısız bir çok girişimi olan yazarımız ülkemizde Android ile ilgilen ilk kişilerden olmuştur. Android markette yüzbinlerce kişinin kullandığı uygulamaları hayata geçirmiş ve aynı zamanda ekip halinde Android uygulamalar yazmayı hedefleyen AndroTurk'un kurucularındandır. -trandroid.com Kurucu -AndroTurk Kurucu ortağı

6 Yorumlar

  1. countDown = (TextView) findViewById(R.id.countdown);

    bu satırı anlayamadım. R.id ne demek oluyor? Eclipse tede derleyemedim bu satır yüzünden, o da anlamadı. Yardımcı olabilir misiniz? :)

  2. merhaba,

    Android de xml ile GUI oluşturmak için /layout dizinin altında layout xmlleri oluştururuz. Oluşturduğumuz bu layout dosyalarının içine TextView,ImageView,Button vs. Viewler ekleriz. Eğer ki oluşturduğumuz View’ın özelliklerini Java tarafında değiştirmek istiyorsakta View içinde android:id=”@+id/idisimi” şeklinde tanımlamada bulunuruz. Id tanımlamayı sadece Java tarafında özellik değiştirmek için değil aynı zamanda layout içerisinde de ihtiyacımız olabilir. Örneğin RelativeLayout içinde viewlerin birbirine göre konumu içinde id tanımlamamız gerekmekte. yani button yazının altında gibi.

    Gelelim asıl soruna. Android oluşturduğun layoutlara, layout içindeki id’lere, drawabe altında ki resimlere … otomatik olarak integer değerler atar. /gen dizinin altında R.java’ya bakabilirsin. Zaten bu classı değiştirmene de izin vermez.

    Eğer ki sen Activity Classında (yukarıdaki örnekteki DownCounter classı) layoutta tanımladığın bir Viewın özelliklerini değiştirmek istiyorsan onu tanımladığın id’ye göre çağırırsın.
    TextView countDown = (TextView) findViewById(R.id.countdown); ile de çağırırsın.

    Devamı öğleden sonra :)

  3. Eğer sen main.xml içerisinde bir Textview oluşturup countdown adında bir id vermemişsen elbette R.id.countdown diye çağırdığında bulamayacağı için hata verecektir. main.xml dosyanının içerise şu textviewı ekle düzelecektir.

    < TextView android:id="@+id/countdown"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="hello"
    />

    Sana kolay gelsin

  4. Teşekkürler Fatih bey. Yeni başlıyorum Android programlamaya. İlginize çok teşekkürler :)

  5. CountDownTimer countDownExample = new CountDownExample(30000, 1000);

    üstteki satırı anlamadım…acaba

    CountDownExample countDownExample =new CountDownExample();

    falan diyip sonradan start konutunu falan veremezmiydiniz ??

    sizin komut biraz aklımı karıştırdı

  6. elbette verebilirsiniz.

Yorum yazsana

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>