본문 바로가기

APP/AndroidStudio

[Android Studio] RecyclerView 리사이클러뷰 사용하기 리스트뷰

반응형

[Android Studio] RecyclerView 리사이클 러뷰 사용하기 리스트뷰

 

이번 시간에는 데이터를 리스트 형식으로 만들 수 있는 RecyclerView 사용법에 대해 포스팅하려 한다.

카카오톡 친구 목록과 같이 데이터가 칸칸이 쌓이는 것을 말한다.

예시

 

우선 build.gradle dependencies아래에 해당 코드를 작성하여 Sync 시켜준다.

implementation 'com.android.support:recyclerview-v7:28.0.0'

 

다음으로 activity_main.xml에 RecyclerView를 생성한다.

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/RecyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

 

MainActivity에 전역 변수를 선언한다.

	RecyclerView recyclerView;
	LinearLayoutManager mLayoutManager;
	ItemAdapter adapter;
	List<Item> itemList = new ArrayList<Item>();

 

onCreate 함수에서 초기화시킨다.

	recyclerView =  findViewById(R.id.RecyclerView);
	mLayoutManager = new LinearLayoutManager(getApplicationContext());
	recyclerView.setHasFixedSize(true);
	recyclerView.setLayoutManager(mLayoutManager);

 

RecyclerView에 담길 데이터 클래스 Item.class를 만든다.

public class Item {
    private String data;
    
    public Item(String _data){
        data = _data;
    }
	public String getData() {
        return data;
    }
}

 

RecyclerView와 연결하기 위해 ItemAdapter 어뎁터를 만들어준다.

public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.ViewHolder> {
    private Context mCtx;
    private List<Item> items= null;
    private ArrayList<Item> arrayList;

    public ItemAdapter(Context context, List<Item> items) {
        this.mCtx=context;
        this.items=items;
        arrayList = new ArrayList<Item>();
        arrayList.addAll(items);
    }


    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_item,null);
        
        return new ViewHolder(v);
    }


    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {
        final Item item=items.get(position);
        holder.tv_data.setText(item.getData());
    }


    @Override
    public int getItemCount() {
        return this.items.size();
    }


    public class ViewHolder extends RecyclerView.ViewHolder {
        TextView tv_data;
        public ViewHolder(View itemView) {
            super(itemView);

            tv_data = (TextView) itemView.findViewById(R.id.tv_data);
        }
    }
}

 

RyclerView에 담길 실제 아이템 레이아웃을 생성해준다.

recycle_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
  <TextView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/tv_data"/>
</LinearLayout>

 

이제 메인 액티비티에서 데이터를 넣고 실행시켜 보자

Item rc= new Item("안녕하세요");
itemList.add(rc);
adapter = new ItemAdapter(getApplicationContext(), itemList);
recyclerView.setAdapter(adapter);

 

작성해야 할 코드가 많지만 데이터 관리를 위해 꼭 알아야 하는 View 중 하나라고 생각합니다.

 

반응형