ورود

View Full Version : ساخت یک تایمر معکوس خیلی ساده



sa1378
یک شنبه 15 تیر 1393, 19:19 عصر
سلام
من میخوام یه تایمر خیلی ساده بدون ساعت و دقیقه بسازم که فقط از مثلا 300 ثانیه توی یه text بشماره و وقتی که به 0 رسید یک عملی انجام بشه.
لطفا یه سورس بدین که اعداد و اعمالی که انجام میشه قابل تغییر باشن

mfaridi
یک شنبه 15 تیر 1393, 19:50 عصر
اگه تایمر بلدی بسازی انکار رو توش انجام بده
int s=300;
s-=1
if(s==0){
//fnesh

}

haniiii
یک شنبه 15 تیر 1393, 20:57 عصر
این کلاس رو ایجاد کن و تو متد onTick میتونی TextView رو آپدیت کنی

همچنین مقادیر اولیه رو برای کلاس بفرس


class timer extends CountDownTimer
{

public timer(long millisInFuture, long countDownInterval)
{
super(millisInFuture, countDownInterval);
// TODO Auto-generated constructor stub
}

@Override
public void onFinish()
{


}

@Override
public void onTick(long millisUntilFinished)
{
// TODO Auto-generated method stub
// Update your textview on on tick

}

}

منبع (http://stackoverflow.com/a/3510608)

sa1378
یک شنبه 15 تیر 1393, 21:26 عصر
این کلاس رو ایجاد کن و تو متد onTick میتونی TextView رو آپدیت کنی

همچنین مقادیر اولیه رو برای کلاس بفرس


class timer extends CountDownTimer
{

public timer(long millisInFuture, long countDownInterval)
{
super(millisInFuture, countDownInterval);
// TODO Auto-generated constructor stub
}

@Override
public void onFinish()
{


}

@Override
public void onTick(long millisUntilFinished)
{
// TODO Auto-generated method stub
// Update your textview on on tick

}

}

منبع (http://stackoverflow.com/a/3510608)

توی onFininsh وقتی 0 شد رو باید نوشت؟
توی onTick هم هر میلی ثانیه هست
چجوری باید به ثانیه تبدیلش کرد؟

sa1378
دوشنبه 16 تیر 1393, 11:04 صبح
من کد اینو گرفتم خیلی خوبه
ولی نمیدونم اون دو تا عدد که اون بالا هست چیه
و اینکه فقط وقتی زمان تموم شد مینویسه done و زمان باقیمونده رو نشون نمیده
اگه میتونین ویرایش کنین درست بشه
new CountDownTimer(10000,20000) {//CountDownTimer(edittext1.getText()+edittext2.getTe xt()) also parse it to long

public void onTick(long millisUntilFinished) {
timetext.setText("seconds remaining: " + millisUntilFinished / 1000);
//here you can have your logic to set text to edittext
}

public void onFinish() {
timetext.setText("done!");
}
}
.start();

toopak
پنج شنبه 19 تیر 1393, 11:51 صبح
عدد اول مدت زمان مورد نظر شماست که اون 300 ثانیه رو باید بهش پاس بدید(البته به صورت میلی ثانیه)
و عدد دوم هم واحد تیک شماست که اگر میخوایید یک ثانیه یک بار باشه باید 1000 بنویسید توش