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

버튼을 길게 누를시 이벤트를 발생시키고 싶습니다.

0 추천
button.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {

                if (event.getAction() == MotionEvent.ACTION_DOWN) {

                    return true;
                }
                else if (event.getAction() == MotionEvent.ACTION_UP) {

                    return true;
                }

                return false;
            }
        });

위의 코드를 사용하면서, 버튼을 길게 누를시 이벤트를 발생시키고 싶습니다.

어떻게 구현해야 할까요..ㄷ?

 

혹시 구현 불가능하다면, 꼭 알려주세요TT

kissout (1,100 포인트) 님이 2016년 4월 29일 질문

3개의 답변

0 추천
 
채택된 답변
핸들러 하나 놓고 auction_down 에서 원하시는 시간만큼의 딜레이 메시지를 핸들러에 보내고,

auction_up 에서는 해당 메시지를 삭제합니다.

 

핸들러에서 해당 메시지가 도착하면 롱클릭 이벤트에서 처리되던 루틴을 수행하시면 됩니다.
바램 (19,650 포인트) 님이 2016년 4월 30일 답변
kissout님이 2016년 4월 30일 채택됨
오~ 제가 원하는 답변입니다. 감사드립니다.
0 추천
setOnLongClickListener 사용하시면 되는 걸 굳이 onTouchLister를 사용하시는 이유 있나요?

꼭 써야한다면 onToch Event가 계속 호출 되니. 호출되는시간 간격이 짦으면 long click이라 판단하시면 됩니다. 

 

http://aroundck.tistory.com/2043
익명사용자 님이 2016년 4월 29일 답변
2016년 4월 29일 수정
네, 구현이 약간 달라져서요... ㅠㅠ

저도 원래 onClick와 onlLongClick을 같이 사용했습니다.

혹시 방법 없나요?
0 추천
쓰레드로 눌렀을때와 땟을때 시간 차이를 구해서

 

원하시는 시간차면 이벤트를 실행시켜주시면 될 거같아요
creater (2,330 포인트) 님이 2016년 4월 29일 답변
답변 감사드립니다.^^
...