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
Post a Comment