ListView(리스트 뷰) – ArrayAdapter, ArrayList, BaseAdapter, BaseAdapter의 추상메소드

CODEDRAGON Development/Android

반응형

   

   

ListView (리스트 뷰)

  • 뷰 객체들을 수직 방향의 목록 형태로 보여줍니다.
  • 수직 스크롤을 지원합니다.
  • 일반적으로 목록의 각 항목은 자료를 담는 뷰입니다.
  • 여러 개의 아이템 중에 선택하는 기능을 넣을 때 자주 사용됩니다.

 

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView

android:id="@+id/selection"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

<ListView

android:id="@android:id/list"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:drawSelectorOnTop="false"

/>

</LinearLayout>

   

 

   

   

ArrayAdapter

ListView와 ArrayList사이에서 중계역할을 해주는 BaseAdapter와 비슷한 클래스

   

   

http://developer.android.com/intl/ko/reference/android/widget/ArrayAdapter.html

   

   

   

ArrayList

  • 일반적인 배열의 기능에서 확장된 클래스.
  • 배열의 데이터를 추가하거나 삭제 가능.

   

   

   

Class ArrayList<E>

https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

   

   

BaseAdapter

BaseAdapter를 상속받은 클래스를 생성하면 BaseAdapter내에 정의된 추상메소드를 구현해야 합니다. 구현해야할 메소드는 getCount(), getItem(), getItemId(int position), getView(int position, View convertView, ViewGroup parent)입니다.

어댑터 뷰와 관계되는 어댑터를 구현하기 위해 BaseAdapter 클래스를 상속 받는 어댑터 클래스를 정의해서 사용합니다.

   

BaseAdapter의 추상메소드

추상메소드

설명

public int getCount()

자식 뷰들의 개수를 리턴하는 메소드입니다.

여기서 자식 뷰는 어댑터 뷰의 자식 뷰임을 의미합니다.

public Object getItem(int position)

어댑터 뷰의 자식 뷰가 n개라면, 어댑터 객체가 갖는 항목의 개수 역시 n개입니다. getItem 메소드는 항목들 중 하나를 리턴합니다. 여기에서 항목은 자식 뷰의 내용을 갖는 객체입니다.

int position: 리턴할 항목의 위치를 의미합니다.

예를 들어 position의 값이 2이면, 이 메소드는 2번째 항목을 리턴하는 거지요.

  

public long getItemId(int position)

이 메소드는 어댑터가 갖는 항목의 ID를 리턴합니다.

단순한 어댑터를 구현하시는 경우라면, 파라메터 position의 값을 그대로 리턴하는 것도 무방합니다.

int position : 리턴할 항목의 위치를 의미합니다. 예를 들어 position의 값이 2이면, 이 메소드는 2번째 항목의 ID를 리턴하는 거지요.

public View getView(int position, View convertView, ViewGroup parent)

자식 뷰들 중 하나를 리턴하는 메소드입니다. convertView 파라메터의 값을 확인하여 그것이 생성되었는지 확인할 수 있습니다. 그것의 값이 null이면, 자식 뷰를 생성하세요

   

int position

리턴할 자식 뷰의 위치를 의미합니다.

View convertView

이 메소드가 호출되는 시점에 position에 위치하는 자식 뷰를 의미합니다.

이 파라메터의 값이 null이면, 자식 뷰가 생성되지 않았습니다. 이러한 경우 자식 뷰를 생성하는 코드를 작성하셔야 합니다.

이 파라메터의 값이 null이 아니면, 자식 뷰는 이미 생성되었습니다. 이 경우 그것을 바로 리턴하는 것도 고려할 수 있습니다.

ViewGroup parent

리턴할 뷰의 부모 뷰를 의미합니다. 즉, 자식 뷰를 포함하는 어댑터 뷰입니다.

 

 

   

Class BaseAdapter

http://developer.android.com/intl/ko/reference/android/widget/BaseAdapter.html

반응형