반응형
[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 중 하나라고 생각합니다.
반응형
'APP > AndroidStudio' 카테고리의 다른 글
[Android Studio] 간단하게 일정시간 지연시키는 딜레이주기 Delay 안드로이드 스튜디오 (0) | 2020.07.18 |
---|---|
[Android studio] 버튼클릭 지점부터 물결효과 주기 Button ripple 안드로이드 스튜디오 (0) | 2020.07.15 |
[Android studio] SharedPreferences를 이용한 데이터 저장하기 로컬 데이터 베이스 (0) | 2020.07.09 |
[Android Studio] 버튼 누르는 효과 만들기 클릭 이벤트 효과 Button Press 안드로이드 스튜디오 (0) | 2020.07.06 |
[Android Studio] 버튼 둥글게 만들기 안드로이드 스튜디오 Button Round (0) | 2020.07.03 |