بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
ادامه دادن شمارشگر تایمر معکوس بعد از توقف
خسته نباشید
من یه برنامه تایمر معکوس نوشتم ولی یه مشکل داره، وقتی بعد از شروع تایمر کلید STOP رو میزنم و بعدش دوباره START میزنم، به جای این که از ادامه شروع بشه از اول شروع میشه. خیلی جست و جو کردم اما جوابی براش پیدا نکردم.
برای گرفتن اعداد از timePicker استفاده کردم
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static TextView countdownTimerText;
private static Button startTimer, resetTimer;
private static TimePicker timepicker;
private static CountDownTimer countDownTimer;
private static int time;
private static int noOfMinutes, noOfSeconds;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
countdownTimerText = (TextView) findViewById(R.id.countdownText);
startTimer = (Button) findViewById(R.id.startTimer);
resetTimer = (Button) findViewById(R.id.resetTimer);
timepicker = (TimePicker) findViewById(R.id.timePicker1);
timepicker.setIs24HourView(true);
setListeners();
}
private void setListeners() {
startTimer.setOnClickListener(this);
resetTimer.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.startTimer:
if (countDownTimer == null) {
startTimer.setText("Start Timer");
noOfMinutes = timepicker.getCurrentHour() * 60 * 1000;
noOfSeconds = timepicker.getCurrentMinute() * 1000;
time = noOfMinutes + noOfSeconds;
startTimer(time);//start countdown
startTimer.setText("Stop Timer");
} else {
stopCountdown();
startTimer.setText("Start Timer");
}
break;
case R.id.resetTimer:
stopCountdown();
startTimer.setText("Start Timer");
countdownTimerText.setText("00:00:00");
break;
}
}
private void stopCountdown() {
if (countDownTimer != null) {
countDownTimer.cancel();
countDownTimer = null;
}
}
private void startTimer(int time) {
countDownTimer = new CountDownTimer(time, 1000) {
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished;
String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis), TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
countdownTimerText.setText(hms);//set text
}
public void onFinish() {
countdownTimerText.setText("TIME'S UP!!");
countDownTimer = null;
startTimer.setText("Start Timer");
}
}.start();
}
}
+1
0
چون داری از اول زمان میفرستی باید همون رو بفرستی به تابع ... یعنی وقتی کلیک میشه شما زمان میگیری که ربطی به زمان گذاشته شده نداره! (9 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
amir.kenarang
9 سال پیش
0
0
یعنی کسی نیست که بخواد جواب این سوالو بده؟
خواهشا کمک کنین دوستان
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .