본문 바로가기
IT/Android

Android RecyclerView Click Event 적용하기 (클릭 이벤트)

by TechTonic 2022. 9. 29.
반응형

RecyclerView Click Event 적용 개요

이전 발행글에서 RecyclerView를 적용하는 방법에 대해 알아보았습니다.

RecyclerView 적용 방법에 대한 내용은 아래 링크를 참고하길 바랍니다.

2022.09.29 - [IT/Android] - Android Retrofit2 데이터 RecyclerView 적용하기

 

Android Retrofit2 데이터 RecyclerView 적용하기

개요 지난 발행글에서 Retrofit2 를 사용하여 공공데이터포탈의 API를 사용하여 데이터 가져오기를 해보았다. 이번글에서는 해당 데이터를 기반으로 RecyclerView를 활용하여 리스트뷰를 만드는 작업

soir1984.tistory.com

 

이번에는 RecyclerView 리스트에서 Click Event를 발생시키는 방법에 대해 설명합니다.

 

RecyclerView Click Event 구현

처음으로 click event를 위한 listener 를 하나 생성합니다.

public interface ServiceItemClickListener {
    void onItemClickListener(View v, int position);
}

Adapter에서 ViewHolder 부분에 아래 구현부를 삽입합니다.

public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        private TextView rank, serviceName, servicePurpose;

        ServiceItemClickListener serviceItemClickListener;

        public ViewHolder(View itemView) {
            super(itemView);
            serviceName = itemView.findViewById(R.id.serviceName);
            servicePurpose = itemView.findViewById(R.id.servicePurpose);

            itemView.setOnClickListener(this);
        }

        public void setItem(ServiceModel item){
            serviceName.setText(item.getServiceName());
            servicePurpose.setText(item.getServicePurpose());
        }

        @Override
        public void onClick(View v){
            this.serviceItemClickListener.onItemClickListener(v,getLayoutPosition());
        }

    }
  • 1. ItemClickListener 객체 생성
  • 2. Holder itemView에 onClickListener 설정
  • 3. onClick Override 후 생상한 ItemClickListener로 View 및 LayoutPosition 전달

 

Adapter에서 onBindViewHolder 부분에 ItemClickListener 등록합니다.

@Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        ServiceModel item = items.get(position);
        holder.setItem(item);

        holder.serviceItemClickListener = new ServiceItemClickListener() {
            @Override
            public void onItemClickListener(View v, int position) {

                Log.d(TAG, "position: " + position);
                //여기서 클릭했을 경우 프로세스 구현
            }
        };

    }

int 값인 position parameter로 클릭한 리스트의 정수(index) 값이 전달됩니다.

해당 index 값을 활용하여 사용중인 객체'List Object'에서 index 값을 꺼내서 사용하면 되고, 해당 객체를 통해 이후 프로세스를 구현하면 됩니다.

 

다음으로는 RecyclerView 에 검색 기능을 추가하도록 합시다. 아래 링크를 참고하세요.

2022.09.29 - [IT/Android] - Android RecyclerView 검색 기능 적용하기

 

Android RecyclerView 검색 기능 적용하기

개요 이전 발행글에서 RecyclerView Click Evnet를 적용하는 방법에 대해 알아보았다. 참고 RecyclerView 관련 정보 링크 2022.09.28 - [IT/Android] - Android Retrofit2를 활용한 공공데이터 API 사용하기 Andro..

soir1984.tistory.com

 

반응형

댓글