안드로이드 With Java #20 ListView1

Jake Seo·2020년 8월 12일
0

안드로이드 With Java

목록 보기
20/31

안드로이드 With Java #20 ListView1

ListView 개념

메신저나 SNS 앱 같은 곳에서 내용물은 다르나 format이 비슷한 것들을 리스트로 뿌려주는 형태의 뷰

벨로그의 예

Android에서 ListView를 사용하는 방식

AddView를 이용하는 방식

  1. List에 담고싶은 목록을 만듦
  2. 목록 중 하나를 빼서 Inflater에게 보내줌
  3. Inflater는 xml format을 꺼내와서 받은 내용을 xml fotmat에 따라 위치나 내용에 맞게 채워줌
  4. 채워준 것을 Activity에 전달해서 List 한 칸을 그림

위 과정을 반복하며 List의 모든 Item을 부착하면 끝

각각의 역할

  • Inflater : 아이템을 해당 layout에 그리는 역할
  • Layout File : 아이템 하나가 그려질 view
  • Item List : 리스트에 들어갈 전체 아이템
  • Item : 리스트의 한 아이템

ListView 실습

MainActivity에 리스트의 아이템들을 ArrayList 형태로 추가

ArrayList<String> stringList;

stringList = new ArrayList<>();
stringList.add("가");
stringList.add("나");
stringList.add("다");
stringList.add("라");
stringList.add("마");
stringList.add("바");
stringList.add("사");

ListView의 각 아이템의 형태가 될 Layout 생성하기

list_view_item.xml 파일을 Layout 항목에 생성

LinearLayout 내부에 TextView로 만들어줬음

activity_main.xml 에 ListView를 담을 컨테이너 생성

LinearLayout형태의 컨테이너 생성

Inflater를 이용한 ListView 그리기

먼저, LayoutInflaterMainActivitycontext기준으로 생성한다.

이후에 미리 만들어둔 stringList의 크기만큼 반복하며 inflate() 메소드의 첫 파라미터에 아까 하나의 리스트 아이템을 표현하기 위해 만든 레이아웃인 list_item_view를 찾아서 넣고 내용이 될 텍스트를 설정해준다.

그리고 ListView를 담기 위한 containeraddView() 메소드를 이용해 infalter로 만들어준 view를 계속 추가해준다.

각각의 Item에 OnClickListener 달아보기

아이템을 클릭하면 토스트 메세지로 무엇을 클릭했는지 나오게 만들어보았다.

잘 작동한다.

Toast 메세지를 사용할 때는 언제나 .show() 메소드를 사용해야 메세지가 뜸을 유의하자

profile
풀스택 웹개발자로 일하고 있는 Jake Seo입니다. 주로 Jake Seo라는 닉네임을 많이 씁니다. 프론트엔드: Javascript, React 백엔드: Spring Framework에 관심이 있습니다.

0개의 댓글