마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

DB 데이터 뽑을 때 로직 질문있습니다.

0 추천

DB에 저장해놓은 메세지들이 있습니다.

pk용 int값[자동] /메세지명: 어쩌구저쩌구 / 날짜 :yyyy/mm/dd/e  -> 둘 다 text 타입이구요 .

테이블 전체를 조회해서

메세지명:하이 ,날짜:2015/02/05/목

메세지명:ㅇㅇ ,날짜:2015/02/05/목

메세지명:ㅂㅂ ,날짜:2015/02/05/목

메세지명:잘가 ,날짜:2015/02/06/금

메세지명:너도, 날짜:2015/02/06/금

이런식으로 데이터들이 저장되어있습니다.

onCreate할 때, 이 저장된 내용들을 1차적으로 뿌려줘야 하는데 다음과 같이 뿌려줍니다.

sql = "SELECT * FROM mytable;";

Cursor cursor = db.rawQuery(sql, null);
if (cursor.getCount() > 0) //하나라도 있는 경우
{
	Log.d("메세지 총 갯수: ",""+cursor.getCount()+"개");
	while (cursor.moveToNext()) 
	{
				
		Log.d("조회결과:  ", String.format("\n 메시지: = %s , 날짜: = %s",
				cursor.getString(1), cursor.getString(2));
				
		data2 = new ExamData((int)1, cursor.getString(2), null,null);
		m_adapter.add(data2);
		
		data = new ExamData((int)0,cursor.getString(1), cursor.getString(2));
		// 어댑터에 데이터를 추가한다.
		m_adapter.add(data);
	}//while
} 

 

테이블 전체를 조회한 후, while문으로 반복해서 어댑터에 데이터를 추가해서 즉각 레이아웃을 추가합니다.

로그로 찍힌 조회결과는 데이터가 잘 나오구요, data2가 날짜를 표시해주는 데이터고, data는 대화 내용 데이터 입니다.

현재 이상태로 조회하면 대화글 한 줄 한 줄마다 날짜가 표시 되는데요,

 

2015/02/05/목

하이 

2015/02/05/목

ㅇㅇ 

2015/02/05/목

ㅂㅂ 

2015/02/06/금

잘가 

2015/02/06/금

너도,

 

 

이상태에서 한줄마다 날짜출력되지 않고 날짜가 변했을 때만 출력해주고싶습니다.

if문으로 텍스트비교를 해서 일일히 날짜를 비교해야할까요..?

anci (19,950 포인트) 님이 2015년 2월 5일 질문

1개의 답변

+1 추천
 
채택된 답변
쿼리에서 날짜 부분을 소팅해서 이전 레코드의 날짜와 다를 경우에만 출력하도록 하면 될 것 같네요.
안_드루이드 (14,510 포인트) 님이 2015년 2월 5일 답변
anci님이 2015년 2월 6일 채택됨
...