Soru & Cevap

countdowntimer hakkında

09.11.2017 - 10:52
CountDownTimer(15000, 1000) {

            @Override
            public void onTick(long c) {
                timeText = (TextView) findViewById(R.id.textTime);
                timeText.setText("Time:" + c / 1000);
            }

            @Override
            public void onFinish() {
                timeText = (TextView) findViewById(R.id.textTime);
                timeText.setText("Time:0");
                handler.removeCallbacks(runnable);
                for (int i = 0; i < imageArray.length; i++) {
                    imageArray[i].setVisibility(View.INVISIBLE);
                }
            }
        }.start();
 public void increaseTime(View view) {

        timeText = (TextView) findViewById(R.id.textTime);
        
        timeText.setText("Time:" );

 

 

 

Arkadaşlar herkese merhaba,uygulamamın içinde yukarıdaki gibi countdowntimer tanımladım ben istiyorum ki butona her tıkladığımda kalan zamanım 2 saniye kadar artsın ancak yapamadım.Yardımcı olursanız sevinirim

 

20 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user Antivir
Antivir
17.11.2017 - 11:45
Test
Profile picture for user nzmoter
nzmoter
16.11.2017 - 02:53


long sure=15000;

CountDownTimer(sure, 1000)

Profile picture for user raydingoz
raydingoz
09.11.2017 - 11:49

Başlamış sayacı değiştiremiyoruz. ama bitirebiliyoruz.

bu yüzden algroitma basit olması lazım:

  • şu anki süreyi öğren
  • öncekini durdur
  • yeni süreyi hesapla (eskisi +2)
  • yeni süreyi başlat

yukarda siz sadece bir seferlik textview'in değiştirmişsiniz.

 

basit bir kod:

long sayac =60000; //60sn?
CountDownTimer mCountDownTimer;



void artir(){
        if (mCountDownTimer != null){ //sayaç aktifte kapat
           mCountDownTimer.cancel();
           sayac(); //sonra yeni sayaç üzerinden başlat
        }else{
           sayac(); //değilse başlat
        }
}

 private void sayac() {
        mCountDownTimer = new CountDownTimer(sayac + 2000, 1) { //en güncel sayacı 2 sn artır

            @Override
            public void onTick(long kalan) {
                    textTimer.setText("Timer: " + kalan/ 1000);
                sayac =kalan; //sayacın durumunu yenilemek için
            }

            @Override
            public void onFinish() {
                //bitti benimki
            }
        }.start();
    }

böyle bişi sanırım