마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼을 터치 하는 동안 카운트를 증가 시키는 좋은 방법 좀 가르쳐 주세요 ㅜㅜ

0 추천
버튼을 터치 하는 동안 카운터를 계속 해서 증가하는 것을 하려고 합니다.

그런데 구글링을 열심히 해보았지만 없어서 ㅜㅜ

고수님들 좋은  팁이 있으면 가르침을...ㅜㅜ
안왕초보 (1,390 포인트) 님이 2014년 2월 12일 질문

2개의 답변

0 추천
버튼을 클릭할 때마다 카운트를 증가시키는  것을 구현하려고 하시는 것이 맞죠?

 

일단 count를 전역변수 등으로 설정하구요.

 

button의 클릭리스너에서 카운트를 증가시키면 될 것 같네요.

 

int mCount =0;

 

.

.

.

button.setOnClickListener(new View.OnClickListener(){

@Override

public void onClick(View v) {

mCount++:

}

});
방귀과장 (18,940 포인트) 님이 2014년 2월 12일 답변
클릭 이벤트가 아니라 터치 이벤트로 하려고 합니다. 터치를 할 경우 count++ 를 사용해도 count 증가가 되지 않습니다.
예제를 만들었습니다.

터치하는 경우 횟수가 텍스트뷰에 표시됩니다. 터치이벤트 같은 경우 여러 번 발생하기 때문에 하나씩 증가하지 않습니다. 만약 하나씩 증가시키길 원하는 경우 clicklistener를 사용하거나 터치리스너안에서 처리가 필요합니다.

예제는 여기서 다운받으세요.

http://blog.naver.com/goodsogi/40206401839
0 추천
onTouchListener를 이용하시면 됩니다 public boolean isPushing; mButton.setOnTouchListener( new Button.OnTouchListener(){ public boolean onTouch(View v, MotionEvent event){ if(event.getAction()==MotionEvent.ACTION_DOWN){ //버튼을 누를 때 isPushing = true; } else { //그 이외 (손을 땔 때) isPushing = false; } return false; } });
amato17 (180 포인트) 님이 2014년 2월 12일 답변
터치 하는 방법은 알고 있습니다. 터치 할 경우 count 증가를 표현하려고 하는 것을 하려고 하고 있습니다.
one touch one click 이 아닌 while touch 일때 계속 증가를 원하시는건가요?
스레드 밖에 ㅎㅎ
1. Handler와 Thread 이용
2. Handler와 Timer, TimerTask 이용
3. AsyncTask 이용

원하는거 고르시고...
ACTION_DOWN 에서 Thread [or] Timer [or] AsyncTask start 및 execute 하고
ACTION_UP 에서 Thread.interrupt [or] Timer.cancel [or] AsyncTask.cancel
하는식으로 구현하시면 될듯...
...