티스토리 뷰
[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;
BasketAdapter 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 중 하나라고 생각합니다.
'안드로이드 > JAVA' 카테고리의 다른 글
[Android Studio] 간단하게 캡처금지하기, 캡쳐방지 하기 (0) | 2020.10.31 |
---|---|
[Android Studio] 간단하게 버튼 중복클릭 시간 제한하기 (0) | 2020.10.30 |
[Android Studio] AsyncTask를 이용한 php+mysql HTTP POST 통신 (0) | 2020.10.28 |
[Android Studio] 안드로이드 스튜디오 타이틀 없애기, 액션바 없애기 (0) | 2020.10.27 |
[Android studio] SharedPreferences를 이용한 데이터 저장하기 로컬 데이터 베이스 (0) | 2020.10.23 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 안드로이드 스튜디오
- react.js useEffect
- kotlin
- kakao api notworking
- 라이브러리 라이센스
- next useEffect
- non-zero exit code detected
- react native oss
- 깃랩 잔디 옮기기
- 안드로이드 해시키
- gitlab mirror
- 깃허브에서 깃랩으로
- Android Studio
- Build failed because of webpack errors
- next.js useEffect
- github mirror
- react native 오픈소스 라이선스
- rn 오픈소스 라이센스
- rn oss
- 깃허브 잔디 옮기기
- 코틀린
- 안드로이드 스튜디오 해시키
- 카카오 해시키
- amplify next.js
- 깃랩에서 깃허브로
- amplify build error
- nextjs ssr deploy
- next.js ssr deploy
- 커밋 이메일 변경
- room error
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함