저번 포스트에 이어 이번 포스트에서는 자바 파일과 리소스 파일을 작성하여 ArrayAdapter 객체를 정의하는 방법을 설명합니다.
자바 파일과 리소스 파일을 작성하여 ArrayAdapter 객체를 정의하는 방법
1. 먼저 ArrayAdapter 객체와 연관되는 배열을 정의하세요. 안드로이드 프로젝트 내에 정의된 strings.xml 파일에 문자열 배열을 정의할 수 있습니다. 이 때 사용되는 태그가 string-array입니다.
(1) strings.xml 파일에 string-array 태그를 정의하세요.
<string-array> </string-array> |
(2) string-array 시작 태그 안에 name 속성을 정의하세요. 이것은 나중에 어댑터 객체가 그것에 접근하기 위해 필요합니다. 작성 예는 아래와 같습니다.
<string-array name="name_of_string_array"> </string-array> |
(3) string-array의 시작 및 종료 태그 사이에 item 태그들을 추가하세요. 이 태그는 문자열을 정의한다고 보시면 되겠습니다. 작성 공식은 아래와 같습니다.
<item> 문자열 내용 </item>
5개의 문자열들인 "string 1", "string 2", "string 3", "string 4", "string 5"을 담는 string-array 태그를 정의해 보겠습니다. XML 코드로 작성하면 아래와 같습니다.
<string-array name="strings"> <item> string 1 </item> <item> string 2 </item> <item> string 3 </item> <item> string 4 </item> <item> string 5 </item> </string-array> |
2. 1에서 문자열 배열을 strings.xml 파일에 정의했었지요. 다음 단계에서는 ArrayAdapter 객체를 생성합니다. ArrayAdapter 클래스가 제공하는 createFromResource 정적 메소드를 호출하여 ArrayAdapter 객체를 생성하세요. 이것의 프로토타입, 리턴 값, 파라메터들은 아래와 같습니다.
프로토타입
static ArrayAdapter<CharSequence> createFromResource( Context context, int textArrayResId, int textViewResId ) |
리턴 값
이 메소드는 리소스 파일에 정의된 문자열 배열과 관계되는 ArrayAdapter 객체를 리턴합니다. CharSequence는 문자열을 담는 데이터형들이 구현해야 하는 인터페이스입니다. <CharSequence>는 이 객체와 관계를 이루는 배열 원소들의 데이터형이 CharSequence를 구현하는 문자열 클래스임을 의미합니다. String이 그 중 하나입니다.
Context context
이 파라메터는 이전 포스트와 동일하므로 중복 설명은 생략합니다.
int textArrayResId
textArrayResId는 strings.xml 파일에 정의된 string-array 원소의 ID를 받기 위한 파라메터입니다. string-array 원소의 name 속성의 값이 "stringArrayId"라고 가정하면, 이 파라메터에 대입된 값은 다음과 같이 작성하시면 됩니다.
R.array.stringArrayId
int textViewResId
이 파라메터는 이전 포스트와 동일하므로 중복 설명은 생략합니다.
createFromResource() 정적 메소드를 이용하여 ArrayAdapter 객체를 생성하는 예는 다음과 같습니다. (참고로 strings.xml 파일에 정의된 문자열 배열 객체의 ID는 stringArrayId라고 가정하였습니다.)
예 1 - 자동 완성 텍스트 뷰와 연관되는 어댑터를 생성할 때
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.stringArrayId, R.layout.simple_dropdown_item_1line, strings ); |
예 2 - 스피너 뷰와 연관되는 어댑터를 생성할 때
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.stringArrayId, R.layout.simple_spinner_item, );
// 스피너 뷰를 터치할 때 나타나는 드롭다운 리스트의 항목들의 레이아웃을 정합니다. adapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item); |
예 3 - 리스트 뷰와 연관되는 어댑터를 생성할 때
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.stringArrayId, R.layout.simple_list_item_1 ); |
마치며...
지금까지 자바 파일과 리소스 파일을 작성하여 ArrayAdapter 객체를 정의하는 방법에 대해 알아보았습니다.
출처 : http://netrance.blog.me/110132311035
'Android' 카테고리의 다른 글
[안드로이드] ListView 뷰를 정의하는 방법 (0) | 2012.12.20 |
---|---|
[안드로이드] ArrayAdapter 객체를 정의하는 방법 #1 - 자바 파일과 리소스 파일을 작성하여 (0) | 2012.12.20 |
Android Activity Life Cycle (0) | 2012.12.17 |
Representational State Transfer(REST)란? (0) | 2011.01.20 |
REST API (Representational State Transfer) (0) | 2011.01.20 |