[컴][안드로이드] RecyclerView 에서 OnItemClick 의 구현

onItemClick on recyclerview / recyclerview 에서 click 시 position 구하는 법 / recyclerview 에서 index 구하기




RecyclerView 에서 OnItemClick 의 구현

보통 setOnClickListener 설정으로 click listener 를 설정해 줄 수는 있지만, click 한 녀석의 index 를 구할 수 없다. 그것을 보안해 주는 방법이다.
  1. android - RecyclerView onClick - Stack Overflow :
    onCreateViewHolder 에서 setOnClickListener 를 설정한다. onCreateViewHolder 는 position 을 parameter 로 넘겨주지 않는다. 그래서 onBindViewHolder 를 이용하는 것이 맞는 듯 하다.
  2. http://stackoverflow.com/questions/24471109/recyclerview-onclick/26196831#26196831 : RecyclerItemClickListener 를 만들어서 addOnItemTouchListener 를 이용해서 RecyclerView 에 붙인다.

처음에 2번째 방법을 사용했는데, recycler view 안에 button 등이 있는 경우에 문제가 발생했다. recyclerview 안의 버튼을 누르면, recyclerview 에도 event 가 발생하고, recyclerview 안에 있는 button 에도 event 가 발생해 버렸다.

그래서 1번째 방법을 사용했다. 1번째 방법은 깔끔하게 원하는 대로 잘 동작했다.

댓글 2개:

  1. 파라미터로 position을 넘겨주긴하는데 이 값이 0에서 변하지 않는데... 어떻게 해결하셨나요?
    Adapter 생성 시 넘겨받는 ArrayList get을 사용하려하는데.... position 값이 바뀌지 않습니다

    답글삭제
    답글
    1. 오래된 이야기라~ 기억이..^^;;
      소스를 보여주세요. 0 에서 변하지 않는 이유는 소스를 봐야 알 듯 하네요.

      삭제