안드로이드 recyclerview 안의 아이템 클릭 이벤트?

조회수 1994회

리싸이클러뷰 클릭시 이벤트를 받기 위해 addOnItemTouchListener를 해놓으면

리사이클러뷰 어디를 클릭하든 이벤트가 발생하잖아요

근데 리싸이클러뷰 안의 버튼을 클릭했을때 이벤트를 받을려면 어떻게 해야 되나요?

리싸이클러뷰 어댑터의 onBindViewHolder에서 setOnClickListener를 달았는데

버튼을 클릭해도 리싸이클러뷰의 onItemClick클릭이벤트가 발생하네요

근데 리싸이클러뷰 안의 버튼을 더블클릭하면 onItemClick 이벤트가 호출되고

setOnClickListener 이벤트까지 호출되네요

리싸이클러뷰 안의 버튼의 클릭 이벤트를 받을려면 어떻게 해야 될까요?

감사합니다^

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • RecyclerView 에 OnItemTouchListener 를 달아놓고 각 리스트 아이템 내의 버튼에 각각 setOnClickListener 를 달아놓은 상태인데, 버튼 클릭 시 버튼 클릭에 대한 이벤트만 받고 싶다는 말씀이신가요? 알 수 없는 사용자 2018.12.12 12:59
  • 각 리스트에 대한 이벤트도 받고 각 버튼에 대한 이벤트도 받고 싶습니다^^ 알 수 없는 사용자 2018.12.12 13:32
  • 질문하신 내용으로 보아서는 원하시는대로 작동되고 있는 것으로 보이는데요 ㅜ 좀더 자세히 설명해주실수 있으신가요? 알 수 없는 사용자 2018.12.12 13:50
  • 제가 설명을 이상하게 했나보네요 죄송합니다^^; 일단 구성은 리싸이클러뷰의 각리스트 안에 버튼이 있습니다 원하는 동작은 리싸이클러뷰의 각 항목(각 라인)을 클릭시 이벤트 발생, 그리고 리싸이클러뷰 각라인 안의 버튼을 클릭시 버튼 이벤트를 발생 시키고 싶습니다. 현재는 각 라인을 클릭시 onItemClick 이벤트가 발생하고요 리싸이클러뷰 각라인 안의 버튼을 클릭시 setOnClickListener 이벤트가 발생하지 않습니다 근데 버트을 두번 연속 빠르게 누르면 setOnClickListener가 발생하고 있습니다^^ 알 수 없는 사용자 2018.12.12 14:37

1 답변

  • touch 동작에 대해 별도의 처리를 하지 않았다면, 두번 연속 빠르게 클릭해야만 클릭 이벤트가 발생하는 것이 일반적인 상황은 아니기 때문에 그 부분에 대해서는 명확한 답변을 드리긴 어려울 것 같네요. 이러한 질문의 경우 가급적이면 코드를 첨부해주시는 것이 좋습니다:)

    각 아이템들의 클릭이벤트에 대해서는 OnItemTouchListener 대신에 custom listener 를 작성하여 사용 하는 방법을 추천드리고 싶네요.

    아래 링크를 참조하시면 도움이 될것 같습니다. https://stackoverflow.com/questions/24885223/why-doesnt-recyclerview-have-onitemclicklistener

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 신경 써주셔서 너무 감사합니다 하다하다 안되서 bind에 각각 항목을 클릭하게 했습니다 정말 정말 감사합니다^^ 알 수 없는 사용자 2018.12.13 17:59

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)