어댑터 뷰는 말 그대로 '목록'등을 나열하는 뷰의 일종이에요.
리스트 뷰는 복수개의 항목들을 수직으로 표시하는 위젯이며, 어댑터뷰의 가장 기본이라고 할 수 있겠습니다.
이를테면,
(옆에 체크박스가 포함되어 있는 부분은 개발자가 더 편집을 해서 만든 커스텀뷰이겠네요^^)
이러한 리스트뷰에 표시되는 항목은 간단한 문자열일 수도 있고, 이미지일 수도 있으며,
문자열과 이미지를 함께 표시할 수도 있습니다.
위와 같은 계층을 가지며 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 에 사용된 리스트뷰 하나의 칸에
두줄의 텍스트를 표현하는 커스텀뷰입니다.
'옛글 > 안드로이드 프로그래밍' 카테고리의 다른 글
안드로이드 GEOPoint 주소로 찾을 수 있는 웹사이트 (4) | 2011.07.12 |
---|---|
안드로이드 비디오 뷰를 사용해보자! (2) | 2011.06.28 |
[AndroiStudy]레이아웃에 대한 이해 (0) | 2011.04.05 |
안드로이드 텍스트뷰를 HTML 로 꾸미기 (0) | 2011.03.30 |
[AndroiStudy] 메니페스트, 에뮬레이터 이해하기 (0) | 2011.03.27 |