재활용할 item을 만든다.
RecyclerView.Adapter 만들기
2.1 RecyclerView는 viewHolder를 사용하기때문에 viewHolder를 상속하는 클래스 생성
public static class ViewHolder extends RecyclerView.ViewHolder {
private TextView item_text;
public ViewHolder(View view) {
super(view);
// Define click listener for the ViewHolder's View
item_text = (TextView) view.findViewById(R.id.item_text);
}
}
ViewHolder(View view)에서 View는 아까 만들어둔 1에서 만든 item xml
2.2 adapter에 데이터전달
private final List<String> list;
public RecyclerAdapter(List<String> list) {
this.list = list;
}
생성자 한다
2.3 RecyclerView.Adapter<RecyclerAdapter.ViewHolder>을 상속하는 adapter 만들기
xml 추가
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
// Create a new view, which defines the UI of the list item
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recycler_item, parent, false);
return new ViewHolder(view);
}
attachToRoot false : 내가 붙이는것아니라 RecyclerView가 붙이기 때문에
inflate(xml,parent) : parent밑에 자식으로 xml 붙인다
데이터 주입
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
String item = list.get(position);
holder.item_text.setText(item);
}
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new GridLayoutManager(this,3));
//new LinearLayoutManager
ArrayList<String> list = new ArrayList<>();
for(int i=0;i<10;i++){
list.add("text : "+ i);
}
RecyclerAdapter recyclerAdapter = new RecyclerAdapter(list);
recyclerView.setAdapter(recyclerAdapter);
setLayoutManager로 원하는 layout 설정가능
깃헙
https://github.com/yoosh199/Andorid-Study/tree/main/Recyclerview