반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바초보
- 자바스크립트
- 스트림릿
- 자바기초
- 자바공부
- 안드로이드 앱 개발
- java
- 데이터베이스
- 안드로이드 스튜디오
- Matplotlib 기초
- 스트림릿 기본
- Android
- serverless
- db
- 웹대시보드 제작
- JavaScript
- Streamlit기초
- Streamlit기본
- 판다스공부
- 웹대시보드 기초
- Pandas
- 자바
- 자바프로그래밍
- streamlit
- RESTful API
- 자바스크립트 공부
- 파이썬
- MySQL
- 판다스
- 파이썬공부
Archives
- Today
- Total
ruriruriya
[Android] 안드로이드 - RecyclerView와 Adapter를 이용하여 리스트를 화면에 표시하는 방법 본문
🤖Android/Java
[Android] 안드로이드 - RecyclerView와 Adapter를 이용하여 리스트를 화면에 표시하는 방법
루리야ㅑ 2023. 12. 28. 15:21반응형
RecyclerView는 안드로이드에서 리스트나 그리드와 같은 형태의 데이터를 효율적으로 표시하기 위한 위젯이다. RecyclerView를 사용하여 리스트를 화면에 표시해보자.
1. adapter 패키지 Adapter 클래스 생성
public class PostAdapter{
}
2. ViewHolder 맴버변수 선언/ 화면연결
public class ViewHolder extends RecyclerView.ViewHolder {
TextView txtUserId;
TextView txtTitle;
TextView txtBody;
public ViewHolder(@NonNull View itemView) {
super(itemView);
txtUserId = itemView.findViewById(R.id.txtUserId);
txtTitle = itemView.findViewById(R.id.txtTitle);
txtBody = itemView.findViewById(R.id.txtBody);
}
}
3. public class PostAdapter extends RecyclerView.Adapter<PostAdapter.ViewHolder>
extends 하고 오버라이딩 하기.
3.1. 맴버변수 선언
public class PostAdapter extends RecyclerView.Adapter<PostAdapter.ViewHolder> {
Context context;
ArrayList<Post> postArrayList;
// postArrayList 생성자.
public PostAdapter(Context context, ArrayList<Post> postArrayList){
this.context = context;
this.postArrayList = postArrayList;
}
}
3.2. onCreateViewHolder 설정
@NonNull
@Override
public PostAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.post_row, parent, false);
return new PostAdapter.ViewHolder(view);
}
3.3. onBindViewHolder 화면에 넣어주는 담당.
@Override
public void onBindViewHolder(@NonNull PostAdapter.ViewHolder holder, int position) {
Post post = postArrayList.get(position);
holder.txtUserId.setText(""+post.userId); // 문자열..을 int로 바꿔야 됌. 안그럼 Error
holder.txtTitle.setText(post.title);
holder.txtBody.setText(post.body);
}
3.4. getItemCount 리사이클러뷰 카운팅
@Override
public int getItemCount() {
return postArrayList.size();
}
4. 전체 코드
package com.--.network2.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.sunny.network2.R;
import com.sunny.network2.model.Post;
import java.util.ArrayList;
public class PostAdapter extends RecyclerView.Adapter<PostAdapter.ViewHolder> {
Context context;
ArrayList<Post> postArrayList;
public PostAdapter(Context context, ArrayList<Post> postArrayList){
this.context = context;
this.postArrayList = postArrayList;
}
@NonNull
@Override
public PostAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.post_row, parent, false);
return new PostAdapter.ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull PostAdapter.ViewHolder holder, int position) {
Post post = postArrayList.get(position);
holder.txtUserId.setText(""+post.userId); // 문자열..을 int로 바꿔야 됌. 안그럼 Error
holder.txtTitle.setText(post.title);
holder.txtBody.setText(post.body);
}
@Override
public int getItemCount() {
return postArrayList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView txtUserId;
TextView txtTitle;
TextView txtBody;
public ViewHolder(@NonNull View itemView) {
super(itemView);
txtUserId = itemView.findViewById(R.id.txtUserId);
txtTitle = itemView.findViewById(R.id.txtTitle);
txtBody = itemView.findViewById(R.id.txtBody);
}
}
}
반응형
'🤖Android > Java' 카테고리의 다른 글
[Android] 안드로이드 - 리사이클러뷰에서 몇번 째 행을 눌렀는 지 알 수 있는, 어댑터 함수(getAdapterPosition()) (0) | 2023.12.30 |
---|---|
[Android] 안드로이드 - RecyclerView Adapter에서 새로운 액티비티 실행하는 방법(Context) (0) | 2023.12.29 |
[Android] 안드로이드 - 메뉴 아이콘 이미지를 만드는 방법(Vector Asset) (1) | 2023.12.28 |
[Android] 안드로이드 - SharedPreferences를 이용한, 앱 내의 저장소 데이터 저장과 불러오기 (0) | 2023.12.28 |
[Android] 안드로이드 - 이메일 형식 체크하는 방법(@ 여부 확인, 이메일 유효성 검사) (0) | 2023.12.27 |