RecyclerView에서 onClick메소드는 어떻게 구현하나요?

RecyclerView에서 onClickListener를 정의하는 방법 아는 사람 없나요? 제 생각에는 리사이클러 뷰의 각 항목에 onClick을 정의하는 방법을 생각해봤는데 이건 너무 번거로워 보이는데 다른 방법은 없는건가요?

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    RecyclerView에서는 clickListener대신에 touchListener를 제공합니다. 혹시 그것도 괜찮으시다면 (https://developer.android.com/intl/ko/reference/android/support/v7/widget/RecyclerView.OnItemTouchListener.html)여기에서 참고하시고요.

    onClickListener를 원하시는거면 생각하신 것처럼 모든 항목에 onClickListener를 설정해주시면됩니다. RecyclerView.Adapter에서

    private final OnClickListener mOnClickListener = new MyOnClickListener();
    
    @Override
    public MyViewHolder onCreateViewHolder(final ViewGroup parent, final int position) {
        View view = LayoutInflater.from(mContext).inflate(R.layout.myview, parent, false);
        view.setOnClickListener(mOnClickListener);
        return new MyViewHolder(view);
    }
    

    그리고 onClick메소드를

    @Override
    public void onClick(final View view) {
        int itemPosition = mRecyclerView.getChildPosition(view);
        String item = mList.get(itemPosition);
        Toast.makeText(mContext, item, Toast.LENGTH_LONG).show();
    }
    

    이런식으로 정의해주시면됩니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.