빠른 질문은 다음과 같습니다. 다음 코드는 대부분 작동하지만, 카운트 다운 중에 클릭하면 원래 상태로 돌아가고 싶습니다. 어떤 제안?카운트 다운 중 취소 버튼
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new CountDownTimer(4000, 1000) {
@Override
public void onFinish() {
button.setText("SENT");
}
@Override
public void onTick(long sec) {
button.setText("CANCEL (" + sec/1000 + ")");
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
cancel();
}
});
}
}.start();
}
});
버튼을 누르기 전에 "Push Me"라고 말합니다. 버튼을 누르면 카운트 다운이 시작되고 버튼의 텍스트가 초 단위로 변경됩니다 (CANCEL (3), CANCEL (2), CANCEL (1)). 카운트 다운이 끝나면 버튼이 텍스트를 "SENT"로 업데이트합니다. 카운트 다운 (onTick) 중에 버튼을 누르면 카운트 다운이 취소됩니다. 나는 그것이 "푸시 미 (Push Me)"상태로 돌아가는 방법을 알고 싶습니다. 기본적으로 다시 눌러서 새로운 카운트 다운을 시작할 수 있습니다. 어떤 도움을 주시면 감사하겠습니다!
하지만 카운트 다운 중에는 동일한 버튼을 클릭해야합니다. 나는 당신이 제공 한 것이 도움이 될 것이라고 생각하지만 카운트 다운 중에 클릭했는지 확인하기 위해 타이머 내부에 청취자가 여전히 필요하지 않습니까? – mkyong
onClickListeners가 작동하는 방식으로, 언제든지보기를 누르면 onClick 메서드에 요청을 보냅니다. 부울 값을 사용할 때의 희망은 눌렀을 때 수행 할 작업을 이해하는 것입니다. 카운트 다운 중에 버튼을 누르면 부울이 참이되고 카운트 다운 중에 원하는 로직을 수행합니다. 그렇지 않으면 정상적으로 작동합니다. – Flynn