반응형

리스트 뷰(ListView)는  어댑터 뷰(AdapterView)의 대표 위젯으로서 항목들을수직으로 펼쳐서 보여줍니다.
다른 위젯들 역시 동작 방식이 유사하기 때문에 리스트 뷰만 잘 공부해도 나머지는 쉽게 익힐 수 있습니다.

문자열을 리스트 뷰에 출력해 보겠습니다.


layout/listtest.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
 
  <ListView
   android:id="@+id/list"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   />
      
</LinearLayout>
리니어레이아웃 안에 리스트 뷰 위젯 하나만 배치하고 코드에서 어댑터와 연결하기 위해 리스트 뷰를 참조할 것이므로 list라는 이름으로 id를 줬습니다.


src/TestAdapterViewActivity.java
package net.test.TestAdapterView;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class TestAdapterViewActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listtest);
       
        //배열 데이터
        ArrayList<String> BMENTmember = new ArrayList<String>();
        BMENTmember.add("창환");
        BMENTmember.add("상종");
        BMENTmember.add("슬기");
        BMENTmember.add("예지");
        BMENTmember.add("소정");
       
        //어댑터 준비
        ArrayAdapter<String> Adapter;
        Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, BMENTmember);
       
        //어댑터 연결
        ListView list = (ListView)findViewById(R.id.list);
        list.setAdapter(Adapter);       
    }
}
리스트 뷰에 표시한 데이터 원본은 ArrayList 객체에 생성하고  그 다음 데이터와 리스트 뷰를 연결해 중 어댑터를 생성했습니다. 항목들이 모두 문자열이니 ArrayAdapter가 가장 적합 하겠죠?

성공!! 다음과 같은 결과가 출력됩니다.!!

배열을 원본으로 사용할 때는 다음 생성자로 어댑터를 초기화 합니다.
ArrayAdapter(Context context, int textViewResourceId, List<T> objects)
ArrayAdapter(Context context, int textViewResourceId, T[] objects)
첫 번째 Context 인수에는 액티비티를 넘겨주면되고, 두 번째 인수는 항목을 표시할 레이아웃의 리소스ID입니다. 세 번째는 원본 데이터겠지요? List 인터페이스를 지원하는 컬렉션 객체(ArrayList, LinkedList, Stack 등)와 단순 배열 두 가지 타입에 대해 오버라이딩되어 있습니다.

두 번째 인수에 들어갈 레이아웃의 리소스 ID는 시스템이 목록용으로 미리 정의해 놓은 것이므로 android.R 뒤에 ID만 다음과 같은 지정하면 됩니다.

 리소스 ID  설명
 simple_list_item_1  하나의 텍스트 뷰로 구성된 레이아웃
 simple_list_item_2   두개의 텍스트 뷰로 구성된 레이아웃
 simple_list_item_checked  오른쪽에 체크 표시가 나타남
 simple_list_item_single_choice  오른쪽에 라이오 버튼이 나타남
 simple_list_item_multiple_choice  오른쪽에 체크 박스가 나타남

기본으로 제공되는 것 외에 더 복잡한 모양으로 레이아웃을 정의하고 싶으면 커스텀 뷰를 만들어야 합니다.


 

반응형

'컴퓨터&IT > 안드로이드 Android' 카테고리의 다른 글

Android - HttpURLConnection 클래스  (0) 2011.08.24
Android - HTTP로 웹에 접근하기!!  (0) 2011.08.24
Android - 어댑터 뷰(AdapterView)  (0) 2011.08.24
Android - 어댑터(Adapter)  (1) 2011.08.24
Android - Activity  (0) 2011.08.24

+ Recent posts