ListView 정리
- main.xml에 ListView를 둘 공간을 만든다.
- MainActivity.java에서 listView Adapter class를 생성한다. (extends BaseAdapter)
- list를 담을 객체를 생성한다. ArrayList = item new Arraylist();
- generate를 통해 필요한 메서드를 구현한다. | getCount, getItem, getItemId, getView
- 데이터가 담길 java class file을 생성한다.
- 그 안에 데이터가 될 변수를 정의한다. ex) name, phone, address, etc..
- generate > Constructor, getter and setter, toString
- MainActivity.java에서 getView를 실행하기 위해 ListView의 item을 위한 layout을 만든다. (새로운 xml 파일 생성)
- listViewItem layout과 연결할 java파일을 만든다. (layout의 최상위 layout을 superclass로 상속받는다.)
- generate를 통해 두 개의 메서드를 생성하고 초기화를 위한 메서드를 작성한다.
- init메서드를 만들어 context를 파라미터로 받고, 그 안에 LayoutInflater로 인플레이션 한다.
- 이렇게 되면 item을 위한 layout에 있는 각 요소들을 불러올 수 있다.
- init메서드 내부에 데이터를 담을 위젯들을 findViewById를 통해 불러온다. + 타입을 없애줘야 변수에 할당 가능
- init 메서드 외부에 데이터가 될 변수들을 메서드로 만든다.
- 그 안에 item에 있는 위젯에 데이터를 넣는 코드를 작성한다. ex) textName.setText(name);
- 그리고 MainActivity.java의 getView로 돌아와서 만든 itemView를 적용시킨다. itemView에 대한 객체를 생성하고 position을 받아와 보여준다.
- 외부에서 데이터를 입력하여 받고 싶다면 getCount다음에 addItem이라는 메서드를 생성한다.
- 마지막으로 onCreate으로 가서 listVIew에 Adapter를 연결하여 화면에 보이게 한다.
- 추가로 listItem을 클릭 시 다른 기능을 추가하고 싶다면 onItemClickListener를 이용한다.
'프로젝트 기록 > android' 카테고리의 다른 글
[Error] Unable to start activity ComponentInfo (0) | 2020.06.23 |
---|---|
[Error] RuntimeException - IllegalAccessException (0) | 2020.06.23 |
[android/안드로이드] Key Event 키 이벤트 (0) | 2020.02.04 |
[android/안드로이드] Relative Layout/margin이 적용되지 않는다. +오류상황 (0) | 2020.01.17 |
[android/안드로이드] file name 파일이름 (0) | 2020.01.17 |