Spinner, AutoCompleteTextView에 이어 이번 포스트에서는 ListView 뷰를 정의하는 방법에 대해 알아 봅니다.
ListView 뷰를 정의하는 과정
1. 프로젝트의 레이아웃 파일(예: main.xml)을 열고, 그 창의 Graphical Layout 탭을 선택하세요.
2. Graphical Layout 탭의 좌측에서 'Composite' 폴더를 선택하시면, ListView 아이콘이 보입니다. 그것을 오른쪽의 액티비티로 드래그 앤 드롭 하세요.
3. Graphical Layout 탭의 액티비티 화면에 ListView 뷰가 추가되었음을 확인하세요.
4. 생성된 ListView 뷰의 id 속성을 수정하세요. 아래 코드는 그 예입니다.
<ListView |
5. ListView 뷰의 리스트를 구성할 항목들을 정의하세요. 이들은 배열로 정의합니다. 언어의 이름들을 갖는 배열을 정의한다고 가정해 봅시다. 자바 코드 및 XML 코드로 그것을 아래와 같이 정의할 수 있습니다.
자바 코드의 예
String[] strLanguages = {"English", "French", "German", "Japanese", "Korean", "Portuguese (Europe)", "Portuguese(Brazil)", "Spanish", "Turkish", "Vietnamese"}; |
XML 코드의 예
<string-array name="strLanguages"> <Item> English </Item> <Item> French </Item> <Item> German </Item> <Item> Japanese </Item> <Item> Korean </Item> <Item> Portuguese (Europe) </Item> <Item> Portuguese (Brazil) </Item> <Item> Spanish </Item> <Item> Turkish </Item> <Item> Vietnamese </Item> </string-array> |
6. ListView 뷰와 5에서 정의한 배열을 이어주는 ArrayAdapter 객체를 정의하세요. 어댑터 객체의 위치는 이 뷰가 활용되는 액티비티 클래스 안이 적절합니다. 이들을 정의하는 방법은 아래 링크들을 참고하세요.
- [안드로이드] ArrayAdapter 객체를 정의하는 방법 #1 - 자바 파일만 작성하여
- [안드로이드] ArrayAdapter 객체를 정의하는 방법 #2 - 자바 파일과 리소스 파일을 작성하여
배열을 자바 코드로 정의하셨으면, 어댑터 객체를 다음과 같이 정의하실 수 있습니다.
ArrayAdapter<String> adapter = new ArrayAdapter<String>( getApplicationContext(), android.R.layout.simple_list_item_1, strLanguages ); |
배열을 XML 코드로 정의하셨으면, 어댑터 객체를 다음과 같이 정의하실 수 있습니다.
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( getApplicationContext(), R.array.strLanguages, android.R.layout.simple_list_item_1 ); |
7. 6에서 정의한 어댑터 객체를 ListView 뷰에 적용하세요. 이것은 그 뷰의 setAdapter 메소드를 호출하여 이루어집니다. 앞에서 만든 어댑터를 이 메소드의 파라메터로 대입해주시면 됩니다. 이 뷰의 이름이 listViewExample이고 어댑터의 이름이 adapter이라고 가정해 봅시다. 그러면 다음과 같이 코드를 작성하실 수 있습니다.
listViewExample.setAdapter(adapter); |
예
지금까지 보여드린 과정들을 적용한 예를 들어보겠습니다. 프로젝트 이름은 AddingListView입니다. 이해를 돕기 위해 실행 결과를 먼저 보여 드릴께요.
실행 결과
먼저 초기 화면입니다.
화면에 ListView 뷰와 그것의 자식들인 TextView 뷰들이 보입니다. 이 리스트는 선택 가능한 언어들을 보여줍니다. 사용자가 그것들 중 하나를 선택하는 기능을 나중에 추가할 수 있겠지요.
이 예는 어떻게 구현되었을까요? 코드들을 보겠습니다. 참고로 이 예에서 배열은 strings.xml 파일에 정의되었습니다. 배열을 자바 코드에 정의한 예도 이 예와 함께 첨부 파일로 올리오니 참고하시기 바랍니다.
main.xml
위 그림과 같은 화면을 구성하기 위해 main.xml 파일에 TextView 뷰와 ListView 뷰를 정의했습니다.
<?xml version="1.0" encoding="utf-8"?>
<TextView
<ListView
</LinearLayout> |
strings.xml
언어의 이름들을 갖는 배열은 아래와 같이 strings.xml 파일에 정의했습니다.
<?xml version="1.0" encoding="utf-8"?>
<string name="str_select_language"> Select one of the languages. </string>
</resources> |
AddingListViewActivity.java
앞에서 정의한 ListView 뷰와 연관되는 어댑터는 이 파일에 정의했습니다.
package me.blog.netrance.example.adding_listview;
import android.app.Activity;
public class AddingListViewActivity extends Activity { |
첨부 파일에 예를 압축하여 올렸습니다. 필요하신 분들께서는 사용하세요.
마치며...
지금까지 ListView 뷰를 정의하는 방법에 대해 정리해 보았습니다. 이 뷰의 항목을 사용자가 선택할 때 추가적인 작업을 구현할 수 있습니다. 이에 대해서는 다음 포스트에 정리할 예정입니다.
출처 : http://netrance.blog.me/110133870852
[출처] [안드로이드] ListView 뷰를 정의하는 방법|작성자 도모네
'Android' 카테고리의 다른 글
[안드로이드] ArrayAdapter 객체를 정의하는 방법 #2 - 자바 파일과 리소스 파일을 작성하여 (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 |