1. Selection Widget

 

선택 위젯이란 여러 개의 아이템 중에서 하나를 선택하는 방식의 위젯을 말한다.

대표적인 선택 위젯으로 리스트뷰, 스피너, 그리드뷰, 갤러리 등이 있다.


선택 위젯은 원본 데이터를 위젯에 직접 설정하지 않고 어댑터라는 클래스를 사용하도록 되어있다. 

어댑터는 이 원본 데이터를 관리하고, 위젯을 통해 보일 각각의 아이템을 위해 뷰를 생성한다.



2. ListView 란


리스트뷰는 각각의 아이템을 순서대로 보여주는 역할을 한다.

각각의 아이템은 독립적인 뷰로 만들어지게 되고 이 뷰들이 모여있는 형태를 유지해 주는 것이 리스트뷰이다. 


주의할 점은 위에서 언급했듯이, 리스트 아이템의 데이터는 리스트뷰가 관리하는 것이 아니라 어댑터에서 관리한다는 것이다.

어댑터를 리스트뷰에 설정하면 리스트뷰는 어댑터에게 데이터나 각각의 아이템을 위한 뷰에 관해 물어보게 된다.


각각의 아이템을 위한 뷰도 어댑터에서 만들어주기 때문에 리스트뷰는 어댑터의 getView 메소드를 호출하여 뷰 객체를 반환받은 후 화면에 보여주게 된다.



3. ListView 과정


1. 리스트뷰 정의

 : 화면에 보여줄 리스트뷰를 만들고 그 안에 데이터가 선택되었을 때 호출될 리스너 객체를 정의한다.


2. 어댑터 정의

 : 데이터 관리 역할을 하는 어댑터 클래스를 만들고 그 안에 각 아이템으로 표시할 뷰를 리턴하는 getView()를 정의한다.


3. 아이템을 위한 XML 레이아웃 정의


4. 아이템을 위한 뷰 정의

 : 이것은 부분화면 같아서, 아이템을 위한 XML 레이아웃을 인플레이션 후 설정해야 한다.



** Context

컨텍스트란 어플리케이션에 대한 전역 정보를 담은 객체를 의미한다.

어플리케이션에 관하여 시스템이 관리하고 있는 정보에 접근 (ex: getPackageName(), getReSource())하거나

안드로이드 시스템 서비스에서 제공하는 API를 호출(ex: StartActivity, bindService())할 수 있다.


출처: https://blog.naver.com/thejunyt/221067173370



** Application Context & Activity Context

Application Context 와 Activity Context 는 미묘한 차이는 있는데 사실상 같다고 보면 된다. 

어플리케이션 컨텍스트는 앱이 실행되는 동안 유지되는 컨텍스트이고, 액티비티 컨텍스트는 액티비티 생명주기랑 함께 한다.

어플리케이션 전체에서 싱글턴으로 사용되면서 Context 를 필요로 하는 객체가 있을때 getApplicationContext 를 사용하는게 좋고, 나머지는 this 쓰는게 좋다. 싱글턴에 액티비티.this 던지면 액티비티가 Memory Leak이 발생할 수 있다.



** Singleton Pattern

: 디자인 패턴 중 하나로, 특정 클래스의 인스턴스가 오직 하나임을 보장하고 어디서든지 그 인스턴스에 접근할 수 있도록 하는 패턴을 말한다. 클래스가 있으면 인스턴스를 무조건 하나만 만들 수 있고, 이 객체는 한번만 생성이 가능하다.





출처: https://www.edwith.org/boostcourse-android/lecture/17057/

'Android' 카테고리의 다른 글

Spinner (스피너)  (0) 2018.05.07
ListView (리스트뷰) - 예제  (0) 2018.05.06
Inflation (인플레이션)  (0) 2018.05.01
Bitmap Button 만들기  (0) 2018.05.01
Nine Patch (나인패치)  (0) 2018.05.01

+ Recent posts