상세 컨텐츠

본문 제목

[안드로이드] RecycelrView 안에(중첩) RecycelrView 만드는 방법 part1

안드로이드

by aries574 2022. 4. 27. 12:24

본문


RecyclerView 안에 RecyclerView를 넣어보는 방법을 알아보겠습니다. 

이번에는 메인에 하나 만들고 다음 포스팅에 그 안에 또 넣겠습니다.


목차

1. 실행 화면

2. 부모 아이템 화면 parent_row_layout

3. 부모 어뎁터 코드 ParentAdapter.java

4. 메인 화면 구성 activity_main.xml

5. 메인 코드 구현 MainActivity.java


1. 실행 화면

 

2. 부모 아이템 화면 parent_row_layout

 - 설명 - 

 1. CardView로 모양을 잡고, LinearLayout를 통해 세로 방향으로 TextView와 RecyclerView를 보여줍니다.

 2. TextView에는 아이템명이 들어가고 , RecyclerView에는 또 다른 리스트 데이터를 보여줍니다.

parent_row_layout

<?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="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    android:orientation="vertical">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="15dp"
        app:cardElevation="15dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_purple"
            android:orientation="vertical">

            <TextView
                android:id="@+id/itemName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:gravity="center"
                android:text="Item New"
                android:textColor="@android:color/white"
                android:textSize="18sp"
                android:textStyle="bold" />

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/childRV"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>

    </androidx.cardview.widget.CardView>

</LinearLayout>

2022.01.01 - [안드로이드] - [안드로이드 스튜디오] 레이아웃 추가하는 방법

 

[안드로이드 스튜디오] 레이아웃 추가하는 방법

이번 시간에는 안드로이드 스튜디오에서 레이아웃 추가하는 방법을 알아보겠습니다. 안드로이드 프로젝트를 만들면 java폴더에는 MainActivity 파일이 있고, res -> layout 폴더에는 activity_main.xml 파일

aries574.tistory.com

 

 

3. 부모 어뎁터 코드 ParentAdapter.java

 - 설명 - 

 MainActivity에서 받은 데이터와 parent_row_layout 화면을 이어주는 클래스입니다.

public class ParentAdapter extends RecyclerView.Adapter<ParentAdapter.MyViewHolder> {

    ArrayList<String> parentArrayList;
    Context context;

    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));
    }

    @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);
        }
    }
}

2021.12.31 - [안드로이드] - [안드로이드 스튜디오] 자바 클래스 생성하는 방법

 

[안드로이드 스튜디오] 자바 클래스 생성하는 방법

이번 시간에는 안드로이드 스튜디오(AndroidStudio)에서 자바 클래스 생성하는 방법을 알아보겠습니다. 기본으로 안드로이드 스튜디오 프로젝트를 생성하면 아래 화면처럼 MainActivity가 기본으로 생

aries574.tistory.com

 

 

4. 메인 화면 구성 activity_main.xml

 - 설명 -

 RecyclerView만 있는 간단한 화면입니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_custom_calendar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <androidx.recyclerview.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/parentRV"/>

</LinearLayout>

 

5. 메인 코드 구현 MainActivity.java

 - 설명 -

ParentAdapter에 데이터를 넘겨주고 RecyclerView에 ParentAdapter 를 적용합니다. 

public class MainActivity extends AppCompatActivity{

    ArrayList<String> monthList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //데이터 생성
        createData();

        RecyclerView recyclerView = findViewById(R.id.parentRV);

        //레이아웃 초기화
        RecyclerView.LayoutManager manager = new LinearLayoutManager(MainActivity.this);

        //레이아웃 적용
        recyclerView.setLayoutManager(manager);

        //사이즈 셋팅
        recyclerView.setHasFixedSize(true);

        //어뎁터 초기화
        ParentAdapter adapter = new ParentAdapter(monthList, MainActivity.this);

        //어뎁터 적용
        recyclerView.setAdapter(adapter);


    }//onCreate

    private void createData() {

        //초기화
        monthList = new ArrayList<>();

        for(int i = 1; i < 13; i++){

            monthList.add(i + "월");
        }
    }

}//MainActivity

2022.04.19 - [안드로이드] - [안드로이드] 커스텀 달력 만드는 방법 part1 화면 구성

 

[안드로이드] 커스텀 달력 만드는 방법 part1 화면 구성

이번 시간부터 커스텀 달력을 만들어 보겠습니다. 이번에는 메인화면 구성을 해보겠습니다. 목차 1. 실행 화면 2. 메인 화면 구성 activity_main.xml 1. 실행 화면 2. 메인 화면 구성 activity_main.xml  -.

aries574.tistory.com

2022.03.02 - [안드로이드] - [안드로이드] SQLite RecyclerView 연락처 만드는 방법 part1 - 조회

 

[안드로이드] SQLite RecyclerView 연락처 만드는 방법 part1 - 조회

앞으로 SQLite, RecyclerView를 통해서 연락처 만드는 방법을 알아보겠습니다. 내용이 많다 보니 조회, 등록, 수정, 삭제 별로 나눠 올리겠습니다. 이번에는 조회 부분입니다. 목차 1. 실행 화면 2. 연락

aries574.tistory.com

2022.01.12 - [안드로이드] - [안드로이드] RecyclerView 아이템 클릭 상세화면 보여주는 방법

 

[안드로이드] RecyclerView 아이템 클릭 상세화면 보여주는 방법

이번 시간에는 RecyclerView로 리스트를 보여줄 때 아이템 클릭 시 상세하면 보여주는 방법에 대해 알아보겠습니다. 목차 1. 실행 화면 2. person 클래스 만들기 Person.java 3. pserson 화면 만들기 person_item.

aries574.tistory.com

반응형

관련글 더보기

댓글 영역