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();
}
}