흠 우선 데이터에 날짜가 있습니다. 결론은 카톡처럼 채팅 되는 부분인데
날짜를 서버에서 가져와 비교후에 요일이 달라지면 채팅 위에 날짜를 뿌려주면 되는부분입니다.
if(code == 1) {
ArrayList<ChatItem> arr = new ArrayList<ChatItem>();
for(int i=0; i<result.length(); i++) {
try {
arr.add(new ChatItem(result.getJSONObject(i)));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
setListData(arr);
for(int i=0; i<arr.size(); i++){
String temp = arr.get(i).getDate();
if(!temp.equals(arr.get(i).getDate())){
dateList.add(temp);
temp = arr.get(i).getDate();
Log.e("Array.Add", temp);
}
}
이런식으로 우선 날짜를 list에 저장합니다. 후에 뿌릴때 날자 비교때문에 골머리 썩네요.
if(flag){
if(dateList.get(idx) == item.getDate()){
holder.get("layout_date").setVisibility(View.VISIBLE);
((TextView)holder.get("date_bar")).setText(item.getDateDay());
}
}
if(item.getStatus() == 1) {
holder.get("layout_me").setVisibility(View.VISIBLE);
holder.get("layout_friend").setVisibility(View.GONE);
((TextView)holder.get("me_name")).setText(item.getName());
((TextView)holder.get("me_content")).setText(item.getContent());
((TextView)holder.get("me_date")).setText(item.getDateTime());
} else if(item.getStatus() == 2){
holder.get("layout_me").setVisibility(View.GONE);
holder.get("layout_friend").setVisibility(View.VISIBLE);
((TextView)holder.get("friend_date")).setText(item.getDateTime());
((TextView)holder.get("friend_name")).setText(item.getName());
((TextView)holder.get("friend_content")).setText(item.getContent());
}
적용 부분인데요 ..
결론은 date 값을 비교해서 다를경우 flag를 변환해서 적용하면 되는 부분인데 .. 하.... 죽겟네요 .