반응형
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 | 31 |
Tags
- RESTful API
- Streamlit기본
- Matplotlib 기초
- serverless
- 자바프로그래밍
- 자바스크립트 공부
- Pandas
- 자바스크립트
- Streamlit기초
- 판다스데이터프레임
- 자바기초
- java
- 웹대시보드 제작
- 자바초보
- 데이터베이스
- 스트림릿 기본
- 파이썬
- 안드로이드 스튜디오
- 웹대시보드 기초
- 자바공부
- streamlit
- JavaScript
- 판다스
- 자바
- 파이썬공부
- 자바초보공부
- db
- 스트림릿
- MySQL
- 판다스공부
Archives
- Today
- Total
ruriruriya
[Android] 안드로이드 - RecyclerView와 Adapter를 이용하여 리스트를 화면에 표시하는 방법 본문
반응형
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' 카테고리의 다른 글
[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 |