package com.example.countdowntimer;
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class TimerActivity extends Activity implements OnClickListener {
public CountDownTimer countDownTimer;
public boolean timerHasStarted = false;
public Button startB;
public Button startA;
public TextView text;
public EditText et;
public String str;
public long startTime = 0;
public long st = 0;
public final long interval = 1 * 1000;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timer);
startB = (Button) this.findViewById(R.id.button);
startA = (Button) this.findViewById(R.id.button1);
text = (TextView) this.findViewById(R.id.timer);
et = (EditText) this.findViewById(R.id.editText1);
startB.setOnClickListener(this);
startA.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startTime = Long.parseLong(et.getText().toString())*1000;
text.setText(String.valueOf(startTime / 1000));
}
});
countDownTimer = new MyCountDownTimer(startTime, interval);
text.setText(text.getText() + String.valueOf(startTime / 1000));
}
@Override
public void onClick(View v) {
if (!timerHasStarted) {
countDownTimer.start();
timerHasStarted = true;
startB.setText("STOP");
} else {
countDownTimer.cancel();
timerHasStarted = false;
startB.setText("RESTART");
}
}
public class MyCountDownTimer extends CountDownTimer {
public MyCountDownTimer(long startTime, long interval) {
super(startTime, interval);
}
@Override
public void onFinish() {
text.setText("Time's up!");
}
@Override
public void onTick(long millisUntilFinished) {
text.setText("" + millisUntilFinished / 1000);
}
}
}
자바소스코드는 이렇습니다.
제가 EditText로 시간(초)를 입력받아 그 시간동안 카운트 다운이 되는 타이머를 만들려고합니다.
근데 startTime의 변수에 상수를 넣어주면 잘 작동하는데 왜 EditText에서 받아오는 값을 넣으면 바로 Time's up이라는 메시지가 뜰까요...?
startA.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startTime = Long.parseLong(et.getText().toString())*1000;
text.setText(String.valueOf(startTime / 1000));
}
});
이부분이 EditText에서 값을 받아오는 부분이고
@Override
public void onTick(long millisUntilFinished) {
text.setText("" + millisUntilFinished / 1000);
}
이부분이 onTick 함수 입니다.. 제발 답변 부탁드려요 ,,,