본문 바로가기
Computer & Program/Android

[Android]ListView에 대해서...

by TDRemon 2013. 4. 17.
반응형

안녕하세요. 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이었습니다.


반응형

댓글