안녕하세요
ios에서 넘어온 개발자입니다.
ios에서는 리스트뷰를 만들때 indexpath라고해서
1-1,2,3,4,5 . . .
2-1,2,3,4,5 . . .
2-1,2,3,4,5 . . .
이런식으로 2차원 그룹을 갖습니다
1번섹션의 1은 1-1
1번섹션의 2는 1-2
2번섹션의 1은 2-1
이런식으로 섹션을 나누어서
자연스럽게 섹션별로 헤더를 갖습니다
그런데 안드로이드에는 이런게 없다고 하더군요
제가보고있는 안드로이드책에도 당당하게 없다고 나와있습니다 ㅠㅠ
2차원은 지원안하고 1차원만 지원하기때문에
데이터의 전체갯수를 구하고 ..
예를들면 갯수가 100이면
position이 0부터 순서대로 99까지 가더군요
그래서 이거가지고는 섹션을 나눈다는게 불가능해보여서
github를 뒤져봤더니 있긴 있는데 제가 원하는 방식은 아니고 편법을 사용했더군요
그러니까 타입을 2개로 지정한다음에
1차원 배열로 순서대로 데이터를 쌓아놨다가 그냥 그걸 차근차근 불러오더라구요
다른 소스들도 비슷했습니다
그렇다면 리스트뷰에서는 이렇게 무조건 1차원데이터를 사용할수밖에 없다는건가요?
아이폰에서는 MAP같은 딕셔너리배열을 이용해서
key랑 배열을 조합하거든요
그래서 key는 헤더가 되고 배열은 데이터가 되는거죠
만약 데이터를 추가하거나 삭제하고싶으면 key를 찾아서 배열을 주물럭거리면 되었는데
안드로이드의 리스트뷰는 어떤식으로 구현을 해야하는지 3일동안 머리를 싸맸는데
답이 안나와서 혹시 좋은방법이 있을까 질문해봅니다
방법이 없으면 그냥 MAP을 하나의 ListArray에다가 때려놓고 순서대로 불러야하는 상황인데
데이터가 크고 계속 추가가 되는 형식이다보니 부담이 가네요...