
layout: post
title:  "RecyclerView"
date:   2021-08-13T14:25:52-05:00
author: sangyeop
categories: Android
이름 그대로 각각의 요소들을 재활용한다
레이아웃을 결정한 이후 Adapter 및 ViewHolder를 구현해야한다.
** 바인딩 : 뷰를 데이터에 연결하는 프로세스
onCreateViewHolder()
onBindViewHolder()
getItemCount()
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {
    private ArrayList<Item> items = new ArrayList<Item>();
  
    // ViewHolder 클래스 정의
    // findViewById를 보통 정의 함 
    public static class ViewHolder extends RecyclerView.ViewHolder {
        private final TextView textView;
        public ViewHolder(View view) {
            super(view);
            // Define click listener for the ViewHolder's View
            textView = (TextView) view.findViewById(R.id.textView);
        }
        public TextView getTextView() {
            return textView;
        }
    }
   	// 어댑터의 데이터셋 초기화
    public CustomAdapter(ArrayList<Item> items) {
        this.items = items;
    }
    // 뷰를 생성한다.
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
        // Create a new view, which defines the UI of the list item
        View view = LayoutInflater.from(viewGroup.getContext())
                .inflate(R.layout.text_row_item, viewGroup, false);
        return new ViewHolder(view);
    }
    // 뷰의 내용을 바꿈
    @Override
    public void onBindViewHolder(ViewHolder viewHolder, final int position) {
        // 이 위치에서 데이터셋으로부터 요소를 가져오고 뷰의 내용을 해당 요소로 바꾼다.
        viewHolder.getTextView().setText(items);
    }
    // 데이터셋의 사이즈를 반환한다.
    @Override
    public int getItemCount() {
        return items.size();
    }
}