본문 바로가기
Android Studio

[Android Studio] Fragment에서 RecyclerView 클릭 이벤트 처리하기

by coding_su 2023. 2. 15.

📝Fragment에서 RecyclerView 클릭 이벤트 처리하기

어댑터에 플래그먼트에서 특정행이나 버튼을 누르면 처리할 수 있게 함수를 만들어준다

public interface OnItemClickListener {
    // 프레그먼트에서 사용가능토록 어댑터의 특정행이나 버튼 누르면 처리할 함수를 만든다
    void likeProcess(int index);
    void onImageClick(int index);
}

public OnItemClickListener listener;

public void setOnItemClickListener(OnItemClickListener listener) {
    this.listener = listener;
};

 

어댑터의 ViewHolder안에 클릭했을때 이벤트 작성

imgLike.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        int index = getAdapterPosition();
        listener.likeProcess(index);

    }
});

imgPhoto.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        int index = getAdapterPosition();
        listener.onImageClick(index);
    }
});

 

플래그먼트에서 어댑터를 만들때 위에서 만드 함수를 구현해준다

adapter = new PostingAdapter(getActivity(), postingList);
adapter.setOnItemClickListener(new PostingAdapter.OnItemClickListener() {
    @Override
    public void likeProcess(int index) {
        // 좋아요 기능 구현한 함수
        FirstFragment.this.likeProcess(index);
    }
    @Override
    public void onImageClick(int index) {
        // 이미지를 클릭하면 해당 이미지를 크게 볼 수 있게 코드 입력
        Posting posting = postingList.get(index);
        String imgUrl = posting.getImgUrl();

        Intent intent = new Intent(getActivity(), PhotoActivity.class);
        intent.putExtra("imgUrl", imgUrl);
        startActivity(intent);
    }
});
recyclerView.setAdapter(adapter);

 

댓글