안녕하세요. TDR입니다.
한동안 코딩을 손 놓고 살다가 갑자기 해야 할 일이 생겨서 할려고하니 아~~무것도 기억이 나지 않는 비상사태가 발생했습니다. 무엇이 기억이 안났냐하면... ListView를 만들려고 하는데 어떻게 만드는지... OTL
해서, 오늘은 ListView의 생성방법에 대해서 초~간단하게 알아 보겠습니다.
요것이 어느 Android 책이나 인터넷을 뒤지면 다~~~ 나오는 예제코드일 것입니다.
여기서 잠깐 간단히 구조에 대해서 설명을 하자면... 먼저 List에 표시할 Data가 필요하겠죠? 그래서 만든 것이 ArrayList<String>으로 되어 있는 변수를 선언 후 대충 개를 추가했습니다. 이 Data를 ListView에 넣어야 하는데 그냥 들어가면 좋으련만 그렇게는 안되고 ListView와 Data를 연결해주는 "무엇"인가가 필요합니다. 그것이 바로 Adapter입니다. Adapter를 AndroidDev 사이트에서 찾아 보면...
An Adapter object acts as a bridge between an AdapterView
and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View
for each item in the data set.
이라고 나옵니다. 즉, AdapterView나 view에 Data를 연결해주는 녀석이라는 거죠... 이 녀석을 생성할 때 위의 예에서는 new ArrayAdapter<String>으로 하면서 파라미터로 context, resource, object 순으로 넣어 줬습니다. 그리고 마지막으로 연결하고자 하는 Listview를 가져와서 setAdapter로 연결해 주면 끝~ 납니다.
이렇게 그냥 끝내면 조금 아쉬운 감이 남아 한글자 더 적어 보겠습니다. 위에서 하나의 itme들을 답을 layout을 Android에서 제공하는 Android.R.layout.simple_list_imte_1을 사용했습니다. 근데 만약 이것 말고 내가 만든 layout을 쓰고 싶다... 하면 어떻게 해야 할까요? 그래서 간단히 제가 만들어 보았습니다.
main_list_item.xml
이렇게 구성한 후 "// 어댑터 준비"부분을 아래와 같이 수정하였습니다.
특별히 수정한 부분은 없고 android.R.layout.simple_list_item_1을 임의로 만든 R.layout_main_list_item으로 바꾸고 main_list_item.xml 안의 TextView의 id인 R.id.custom_text1을 추가했습니다. 제가 정확히는 모르겠지만 android 자체적으로 지원하는 layout을 쓰면 id가 자동적으로 매칭이 되서 굳이 view의 id를 명시 안해줘도 되지만 custom인 경우에는 해당 Data를 어느 view에 넣을지 알 수 가 없기 때문에 명시해 줘야 하는 것 같습니다.
지금까지 수박 겉핧기 식으로 ListView를 구성하는 방법을 확인해 보았습니다. 다음에 기회가(?) 된다면 좀 더 심도있게 다뤄볼 수 있었으면 좋겠습니다. ㅎㅎ
이상 TDR이었습니다.
'Computer & Program > Android' 카테고리의 다른 글
[Android]AlertDialog에 대해서... (2) | 2013.04.22 |
---|---|
[Android]알림 3종세트 (0) | 2013.04.18 |
[Android]onItemClick()와 onListItemClick()의 차이 (2) | 2012.11.20 |
[Android_SS01]Application의 핵심 구성요소 (0) | 2012.01.05 |
[Android]일본 & 한국의 안드로이드 커뮤니티~ (2) | 2011.03.25 |
댓글