RecyclerView는 리스트가 재활용되어서 무한히 리스트를 사용할 수 있는 기능이다.

 

 

우선 프로젝트를 하나 만들어주고, 아래와 같이 설정해주었다.

 

 

 

build.gradle 에 들어가서, dependecies부분을 수정해주었다. 이를 통해 recyclerview를 사용할 수 있게 되었다.

 

 

 

다시 activity_main으로 돌아왔다.

12~21행: RecyclerView의 틀 완성

24~31행: 버튼 부분 구현

 

 

 

이제는 RecyclerView의 한 줄 당 들어갈 데이터를 설정해주기로 했다.

app>res>layout>new>Layout resource file 을 들어가서 파일을 하나 만들어주었다. 이름은 item_list로 설정.

 

 

 

RecyclerView에 나오는 리스트들을 설정해주기 위해서 다음과 같이 작업하였다.

가로로 보여주기 위해서 orientation을 horizontal로 설정하였다.

 

 

 

사진 옆쪽의 공간을 사용하기 위해서 다음과 같이 코드 설정을 해주었다.

match_parent를 사용해서 이미지 옆쪽에 틀을 만들고, 글을 추가했을 때, 세로방향을 추가되도록 vertical 속성을 추가하였다.

 

 

 

텍스트뷰를 추가해주고, 이를 center_vertical로 정렬해주었다. 세로로 가운데 정렬을 해주었고, 최상위 부모 클래스의 height 값을 wrap_content로 변경해주었다.

 

 

 

기본적인 화면구성은 다 되었다. 이제, java파일을 연결해서 동적인 변화를 주도록 하자.

우선 item_list에 들어갈 변수들을 선언 해주어야한다.

아래와 같이 폴더에다가 Java Class를 하나 생성해주자. 이름은 MainData로 만들었다.

 

 

 

안에다가 이렇게 아까 설정한 이름들을 변수로써 선언을 해주었다.

 

 

 

cmd + n을 눌러서 Generate 와 Getter and Setter을 설정해주었다. 이때, 세 개의 변수를 shift를 눌러서 한 번에 설정해주었다.

 

 

 

두 개 다 설정해주면 아래와 같이 결과가 나온다.

 

 

 

다음은 어댑터 작성을 할거다. 아래의 경로로 자바클래스를 만들어주자. 이름은 MainAdapter.

 

 

 

public class MainAdapter 뒤에다가 extends를 입력하고 쭉 입력해주고, 빨간 에러 뜨면, implement를 클릭하면 다음과 같이 한 번에 코드가 설정이 된다.

 

 

 

아직 오류가 뜬 CustomViewHolder는 Create class 버튼을 눌러 주고 , Make ~~ extends를 눌러서 해결해주자. 

 

 

 

이제 public class~~ 아래 쪽에 코드를 넣어주자.

아까 listView의 데이터들을 array에 담아주기 위해 ArrayList를 사용하고, MainData (iv_profile, tv_name, tv_content)를 이용하기 위해 <MainData>라고 입력해주었다. 그리고 이 ArrayList<MainData> 의 이름을 arrayList로 명명했다.

 

 

 

그리고 public class CustomeViewHolder ~~ 아래쪽에다가 다음과 같이 적어주었다.

 

 

 

ArrayList아래에다가도 cmd+n 을 넣어서 constructor을 생성해주었다.

 

 

 

이제 코드를 하나씩 보자. onCreateViewHolder은 ListView가 처음으로 생성될 때의 생명주기를 의미한다.

ListView가 클릭되었을 때, 혹은 잘못 클릭되었을 때의 경우를 구현해주었다.

curName은 currentName으로 현재 선택된 리스트뷰를 의미한다.

 

 

 

이제 길게 클릭했을 때, 롱클릭했을 때 화면 구현을 해주자. 그리고 getItemCount()의 리턴값을 아래와 같이 수정해주었다.

 

 

 

롱클릭뷰를 눌렀을 때, 리스트뷰가 삭제되는 것을 구현해보자. getItemCount()아래에 remove 기능과 getItemCount의 위쪽의 롱클릭리스너에다가 다음과 같이 적어주었다. 여기까지하면 MainAdapter부분은 다 작성이 되었다. 이제 MainActivity부분으로 들어가자.

 

 

메인 엑티비티.java에서 recyclerView에서 변수를 선언해주고 변수들을 함수와 연결하면서, xml에서 설정했던 것과 동작을 연결해주었다.

 

 

이제 앱의 추가버튼 부분 기능구현을 해주자.

 

 

 

이어서 코드를 계속 작성해주었다. notifyDataSetChanged()는 새로고침 함수이다.

 

 

빌드를 해보았다.

추가를 누르면, 내가 설정한 이미지들이 나오고, 많이 누르면 스크롤뷰가 가능하며, 각 리사이클러뷰를 길게 누르면 삭제가 이루어진다.

동영상으로 남기고 싶어서 유튜브에 업로드했다!

www.youtube.com/watch?v=Mxf_nKFa3Bc

 

 

 

+ Recent posts