일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 큐 자바 코드
- 서비스 쓰레드 차이
- 안드로이드 유닛 테스트
- android retrofit login
- 2022 플러터 안드로이드 스튜디오
- rxjava hot observable
- 안드로이드 레트로핏 사용법
- 안드로이드 유닛 테스트 예시
- 서비스 vs 쓰레드
- Rxjava Observable
- 안드로이드 라이선스
- 클래스
- 객체
- 안드로이드 os 구조
- 안드로이드 레트로핏 crud
- 플러터 설치 2022
- 자바 다형성
- jvm이란
- 안드로이드 유닛테스트란
- 스택 큐 차이
- 스택 자바 코드
- 멤버변수
- rxjava cold observable
- android ar 개발
- ar vr 차이
- 2022 플러터 설치
- rxjava disposable
- 안드로이드 라이선스 종류
- jvm 작동 원리
- ANR이란
- Today
- Total
나만을 위한 블로그
[Android] ArrayAdapter란? 본문
스피너를 구현하다가 예제에서 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 객체를 생성하는 예는 아래와 같다.
'Android' 카테고리의 다른 글
[Android] AR core란? (0) | 2019.12.02 |
---|---|
[Android] 스피너란? (0) | 2019.12.01 |
[Android] runOnUiThread란? (0) | 2019.11.30 |
[Android] AsyncTask란? (0) | 2019.11.28 |
[Android] Cannot open a library at FileMapping 에러 (0) | 2019.11.26 |