본문 바로가기

프로그래밍언어/Android Programming

안드로이드 어댑터뷰 이해하기!



어댑터 뷰는 말 그대로 '목록'등을 나열하는 뷰의 일종이에요. 
리스트 뷰는 복수개의 항목들을 수직으로 표시하는 위젯이며, 어댑터뷰의 가장 기본이라고 할 수 있겠습니다. 
이를테면, 

 
위와 같이 항목별로 리스트로 보여주는 부분이 리스트뷰입니다!
(옆에 체크박스가 포함되어 있는 부분은 개발자가 더 편집을 해서 만든 커스텀뷰이겠네요^^)

이러한 리스트뷰에 표시되는 항목은 간단한 문자열일 수도 있고, 이미지일 수도 있으며, 
문자열과 이미지를 함께 표시할 수도 있습니다. 


 
위와 같은 계층을 가지며 ListView 와 Spinner로 크게 나눌 수 있습니다. 
어댑터 뷰도 '뷰그룹'에서 파생된 것이며, 복잡해보이지만, 어댑터뷰는 어댑터가 전달한 데이터를 화면에 표시하기만 합니다. 

미리 XML (layout파일)에 


<ListView 
 android:id="@+id/list" 리스트뷰의 ID를 명명한다.
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
/>
 


로 리스트뷰에 대한 부분을 정의해줍니다.
이제 java파일에서 이 리스트뷰에 뿌려줄 '항목'들과 연결부분을 보면, 



//데이터 원본 준비
ArrayList<String> 항목들이름 = new ArrayList<String>();
항목들이름.add("김소정");
항목들이름.add("강감찬");

//어댑터 준비
ArrayAdapter<String> Adapter이름;
Adapter이름 new ArrayAdapter<String>(this,
  android.R.layout.simple_list_item_1, 항목들이름);

//어댑터 연결
ListView list(XML파일의 리스트뷰의 아이디) =(ListView)findViewById(R.id.list);
list.setAdapter(Adapter이름);
 


으로 간단하게 연결을 할 수가 있습니다. 
요만한 코드양으로 리스트뷰가 출력되냐구요!? 깔끔하게 리스트뷰가 출력이 됩니다^^
  
윗부분에서 다른 기본적 코드 이외에 ArrayAdapter<string>( , , ) 부분을 보시게 되면,
android.R.layout.simple_list_item_1 이라는 부분이 보이시나요, 저부분에서는 어댑터뷰에 기본적으로 내장되어 있는 레이아웃을 불러오는 부분입니다. 가장 기본적인 레이아웃이 바로 저 심플리스트아이템_1 레이아웃이구요. 다른 레이아웃에 대해 알아보면,

 

위와 같이 레이아웃을 적용할 수 있습니다. 
자 리스트뷰가 만들어졌다면, 과연 리스트뷰를 클릭했을 때 발생하는 이벤트 부분은 어떻게 적용시킬까요!?
단순하게 어떤 항목들을 보여주기 위한 리스트뷰라면 위와 같은 어댑터와 리스트뷰로 가능하지만, 리스트뷰로 메뉴를 작성하거나, 어떤 부가적인 정보를 더 보여주기 위해서는 클릭했을 때 어떠한 액티비티를 연결한다거나 혹은 어떤 메서드를 넣어주어야 합니다. 
 

리스트뷰가 있는 JAVA파일에서 아래 따로 명령을 해줍시다!

 

@Override

  protected void onListItemClick (ListView l, View v, int position, long id){ 

   super.onListItemClick(l, v, position, id); 

   

   if(position==0){              //리스트뷰의 첫번째 항목에 해당하는 부분

                           첫번째 리스트뷰 클릭 시 실행시킬 명령어

            }

   else if(position == 1){      //리스트뷰의 두번째 항목에 해당하는 부분

                           두번째 리스트뷰 클릭 시 실행시킬 명령어

   }
}  



간단하게 리스트뷰의 적용 및 메서드 적용방법에 대해 알아보았습니다.  
'커스텀뷰'에 대해 더 알아보시고 싶은 분들은 아래에 첨부해놓은 
코드파일을 한번 보시고 공부해보세요^^

아래 코드파일은 안드로이드 어플리케이션 PartyUHI 에 사용된 리스트뷰 하나의 칸에
두줄의 텍스트를 표현하는 커스텀뷰입니다.