이번에는 저번 포스팅에 이어서 하겠습니다.
메인에 만든 RecyclerView안에 RecyclerView를 보여주겠습니다.
- 설명 -
메인에 보여지는 RecyclerView안에 보일 화면입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cardCornerRadius="15dp"
app:cardElevation="15dp">
<LinearLayout
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@android:color/holo_orange_light"
android:orientation="vertical">
<TextView
android:id="@+id/dayText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Day"
android:textColor="@android:color/white"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
2022.01.01 - [안드로이드] - [안드로이드 스튜디오] 레이아웃 추가하는 방법
- 설명 -
부모 어뎁터에서 넘긴 데이터와 자식 아이템 화면을 이어주는 클래스입니다.
public class ChildAdapter extends RecyclerView.Adapter<ChildAdapter.MyViewHolder> {
ArrayList<String> childArrayList;
public ChildAdapter(ArrayList<String> childArrayList) {
this.childArrayList = childArrayList;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.child_row_layout, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.dayText.setText(childArrayList.get(position));
}
@Override
public int getItemCount() {
return childArrayList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder{
TextView dayText;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
dayText = itemView.findViewById(R.id.dayText);
}
}
}
- 설명 -
onBindViewHolder 메서드에 RecyclerView 설정을 추가합니다.
public class ParentAdapter extends RecyclerView.Adapter<ParentAdapter.MyViewHolder> {
ArrayList<String> parentArrayList;
Context context;
ArrayList<String> dayList;
public ParentAdapter(ArrayList<String> parentArrayList, Context context) {
this.parentArrayList = parentArrayList;
this.context = context;
}
//화면 생성
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.parent_row_layout, parent, false);
return new MyViewHolder(view);
}
//데이터 셋팅
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.itemName.setText(parentArrayList.get(position));
//자식 RecyclerView 생성
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(context,
LinearLayoutManager.HORIZONTAL, false);
holder.childRV.setLayoutManager(layoutManager);
holder.childRV.setHasFixedSize(true);
//초기화
dayList = new ArrayList<String>();
//데이터 생성
dayList.add("Sun");
dayList.add("Mon");
dayList.add("Tue");
dayList.add("Wed");
dayList.add("Thu");
dayList.add("Fri");
dayList.add("Sat");
ChildAdapter adapter = new ChildAdapter(dayList);
holder.childRV.setAdapter(adapter);
}
@Override
public int getItemCount() {
return parentArrayList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder{
TextView itemName;
RecyclerView childRV;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
itemName = itemView.findViewById(R.id.itemName);
childRV = itemView.findViewById(R.id.childRV);
}
}
}
2022.04.02 - [안드로이드] - [안드로이드] 같은 그림 찾기 게임 만드는 방법 part1 - 화면 구성
2022.03.09 - [안드로이드] - [안드로이드] Firebase 시작하기 실시간 데이터베이스 Realtime Database (간단한 데이터 읽기, 쓰기) part1
[안드로이드] LineChart 만드는 방법 part2 - 멀티 데이터 구현 (0) | 2022.04.30 |
---|---|
[안드로이드] LineChart 만드는 방법 part1 - 기본 구현 (0) | 2022.04.29 |
[안드로이드] RecycelrView 안에(중첩) RecycelrView 만드는 방법 part1 (0) | 2022.04.27 |
[안드로이드] 커스텀 달력 만드는 방법 part8 이번 달만 색상 변경하기 (5) | 2022.04.26 |
[안드로이드] 커스텀 달력 만드는 방법 part7 달력 표시 변경하기 (1) | 2022.04.25 |
댓글 영역