안녕하세요. 커스텀리스트뷰로 카카오톡이나 라인과같이 메신저 형식의 채팅 레이아웃을 구현 중입니다.
일단 전체적인 레이아웃은 잡았는데.. 대화내용을 롱클릭 즉, 리스트뷰의 아이템 롱클릭을 했을 때 삭제하려고 하는데..
롱클릭할 때 포지션 값을 제대로 받고싶습니다.
1.onCreate에서 내부DB에 저장했던 데이터들을 읽어옵니다.
2.DB는 num(pk/autoincrement),대화내용(text),날짜(text),시간(text)로 구성되어있습니다.
3.DB를 처음부터 끝까지 조회하다가 중간에 다른 날짜 즉,
2/안녕하세요/2015.01.01
3/하이/2015.01.03
이렇게 날짜를 조회해서 그 다음 데이터의 날짜값이 앞과 다른 경우 날짜 타이틀을 추가합니다.
data2 = new ExamData((int) 1, cursor.getString(3), null,null);
m_adapter.add(data2);
대화내용과 날짜타이틀은 레이아웃이 다르기 때문에, 둘을 구분할수 있는 타입을 지정해서
0일 때엔 대화레이아웃/1일 땐 날짜레이아웃을 지정해서 추가합니다.
이렇게 날짜 타이틀도 리스트뷰에 포함 되다보니, 대화내용을 삭제할 때의 문제가 발생합니다.
DB에는 대화 내역만 들어가있습니다.
0/안녕/날짜
1/응/날짜
2/잘지내?/날짜
이런식인데..
리스트뷰에서 삭제할 때 롱클릭으로 해당 포지션값을 받아서 num값으로 조회해 삭제하려고했는데..
날짜 타이틀이 중간에 포함되다보면
---2015/01/01---
0/안녕/2015/01/01
---2015/01/02---
1/응/2015/01/02
2/잘지내?/2015/01/02
이렇게 되는데요. DB상에선 0번이었던 녀석이 1번 포지션값을 갖게 되고...날짜 타이틀이
중간중간 포함될때마다 포지션값이 변화해서 어떤식으로 값을 받아와야 하는지 모르겠습니다.
짧은 조언이라도 주시면 감사하겠습니다 좋은하루 보내세요