[Android] ArrayAdapter란?
[안드로이드] ArrayAdapter 객체를 정의하는 방법 #1 - 자바 파일만 작성하여
이번 포스트에서는 ArrayAdapter 객체를 정의하는 방법을 정리합니다. ArrayAdapter란? ArrayAdapter...
blog.naver.com
스피너를 구현하다가 예제에서 ArrayAdapter라는 키워드가 나와서 공부해봤다.
ArrayAdapter : 배열과 어댑터 뷰를 연결하는 클래스, 배열은 어댑터 뷰가 화면으로 뿌릴 자료들의 집합이다.
일반적으로 이 어댑터와 연관되는 배열의 종류는 String[], CharSequence[]다.
배열에 문자열이 들어 있으면 어댑터 뷰는 텍스트뷰를 써서 이것들을 보여주는 것이다.
ArrayAdapter를 정의하는 방법은 자바 파일만 작성해서 ArrayAdapter 객체를 정의하는 것, 자바 파일과 리소스 파일을 작성해 ArrayAdapter를 정의하는 것 2가지가 있다.
1. 자바 파일만으로 작성하는 방법에 대해 알아보면, 먼저 ArrayAdapter 객체와 연관되는 배열을 만들어야 한다.
아래 코드는 String[]을 정의한 예시다.
String[] arr = { "string1", "string2", "string3", "string4" };
2. 1번에서 String[]을 정의했는데 다음 단계에서는 ArrayAdapter 객체를 생성한다. ArrayAdapter 클래스가 제공하는 생성자를 호출해 ArrayAdapter 객체를 생성해라. 생성자는 여러 종류가 있지만 주로 사용되는 것과 그 인자는 아래와 같다.
public ArrayAdapter<T> { Context context, int TextViewResourceId, T[] objects }
- Context context : 어떤 액티비티가 ArrayAdapter 객체를 활용하는지를 이 context를 통해 명시한다. 어댑터 객체를 액티비티 클래스 안에 정의한다면 this 키워드를 쓸 수도 있다.
- int TextViewResourceId : 안드로이드가 제공하는 레이아웃들의 id값을 의미한다. 안드로이드의 어댑터 뷰는 레이아웃 객체를 갖고, 레이아웃은 주로 텍스트뷰를 갖는다. 어댑터 뷰의 레이아웃은 이 인자를 통해 개발자가 선택할 수 있다.
안드로이드가 제공하는 레이아웃들의 id들은 아래와 같다. 어댑터 뷰의 종류에 따라 사용되는 id가 다르니 참고할 것.
- T[] objects : 어댑터 뷰가 뿌릴 항목들은 가진 배열이다. 함수 선언부의 <T>는 ArrayAdapter 객체와 관계되는 배열 안의 원소의 자료형을 결정하기 위한 문법적 요소인 제네릭이다. T 대신 원하는 자료형을 선택하면 된다.
주로 쓰이는 건 String, CharSequence다. 이 생성자를 써서 ArrayAdapter 객체를 생성하는 예는 아래와 같다.