RecyclerView

유시현·2022년 12월 19일
0

Android

목록 보기
4/34

RecyclerView로 데이터 전달방식

  1. activity에서 list 형태로 데이터를 생성
  2. adpater에 이 list전달
  3. recyclerView에 adpater 장착

사용방법

  1. 재활용할 item을 만든다.

  2. 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);

    }
  1. activity에서 recylerView에 adpater 장착
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

profile
안드로이드 ,ios 공부하고 있습니다

0개의 댓글