인프런 - 강의/1 - 누구나 할 수 있는 안드로이드 앱 개발 (Kotlin)

4-2 ListView

개복치 개발자 2019. 7. 31. 13:40

 굉장히 많이 쓰는 ListView에 대한 설명입니다.

 

 1. 레이아웃에 ListView 만들기

 2. Item 생성(ListItemView) 

 3. Adapter 만들기

 4. Adapter 적용

 

 끝 입니다.

 

 자 그러면 하나씩 해 봅시다.

 

 1. ListView 만들기

 

 그냥 레이아웃에 리스트뷰 만들어주면 됩니다.

 

 

 

 그러면 위의 화면과 같이 리스트뷰가 나옵니다.

 

 자 이제 그렇다면 저 Item에 들어갈 레이아웃 틀을 만들어 봅니다.

 

 2. Item 생성

 

 리스트뷰에 한줄씩 들어갈 부분을 설정해주는 것입니다.

 

 레이아웃 파일을 만들고

 

 

 레이아웃을 에 Item Cell을 하나 설정해놓고

 

 

 Item Cell이 나온 것을 확인해줍니다.

 

 

 

 3. Adapter 만들기

 

 자 그 다음에는 Adpater라는 것을 만들어서 ListView에 Cell을 넣어주는 작업을 합니다.

 

 Adapter 라는 개념이 처음에는 조금 안 와닿을 수 있는데, Layout에 List를 하나씩 그린다 라고 생각하시면 됩니다.

 

 아래의 설명을 천천히 읽어주세요.

 

 일단은 MainListAdapter를 만들면은

 

 아래와 같이 만들어집니다.

 

 class MainListAdapter(val context: Context, val list :ArrayList<String>) 

 

 이 부분 부터 설명드리면 context는 안드로이드에 여러가지 기능을 핸들링 하기 위한 것인데 깊게 설명하면 끝이 없어서, 그냥 넘어갑니다.

 

 Adapter에서는 adpater에 호출하는 Activity 정보를 가지고 있다. 정도로만 생각해주시면 될 것 같습니다.

 

 list는 Adapter를 호출하는 MainActivity에서 Adapter에 하나씩 넣어줄 데이터들의 list를 adapter로 전달해준 것입니다.

 

 자 그렇다면, 저기 자동으로 생성되는 4가지의 function 을 설명해보겠습니다.

 

 getview = ListViewItem에 하나씩 데이터를 세팅해줍니다.

 getItem = 전달받은 position 위치에 item 을 return 해줍니다.

 getItemId = 해당 Item의 position을 return 해줍니다.

 getCount = List의 갯수를 지정해줍니다.

 

 getItem / getItemId 은 지금은 별로 중요한게 아니니, 이해가 안가도 그냥 넘어갑니다.

 

 자 그렇다면 위의 함수를 하나씩 채워봅시다.

 

 getView 에서 listview_item을 가져와서 "aaa"라는 텍스트를 넣어주고

 

 getCount() 를 3으로 해준다.

 

 그리고 MainActivity에서 adapter를 연결해준다.

 

 

 자, 그렇다면 aaa가 3개 나옵니다.

 

 

 list_sample 에 a,b,c를 추가해줍니다.

 

 

 list.size 를 getCount()에 넣어줍니다.

 

 지금은 list.size 크기가 3이고, 배열에 d,e 를 넣으면 5가 되겠죠?

 

 그리고  view(listview_item) 있는 text에 id 설정을 list_sample_text로 해주고 각각에 리스트에 있는 것을

 

 view.list_sample_text.setText(list.get(p0)) 으로 넣어줍니다.

 

 

 

  

 그러면 이렇게 리스트가 나옵니다. 

 

 

 

 

 끝. :)

 

 

 

 

 

 

 

'인프런 - 강의 > 1 - 누구나 할 수 있는 안드로이드 앱 개발 (Kotlin)' 카테고리의 다른 글

4-4 API + ListView + ListViewOnClick  (0) 2019.08.02
4-3 Github API  (0) 2019.08.02
4-1 개요  (0) 2019.07.27
3-4 app icon과 app name  (0) 2019.07.27
3-3 android splash 화면  (0) 2019.07.27