ringa_lee2017-04-17 16:53:04
XML
을 구문 분석할 때 발생하는 문제입니다. XML
레이아웃 파일을 새로 고치고 Rebuild
에서 를 확인하는 것이 좋습니다. >XCRoundImageView
에 문제가 있나요?
怪我咯2017-04-17 16:53:04
귀하의 코드를 주의 깊게 살펴본 결과 이 오류가 아마도 이러한 이유로 인해 발생한 것으로 나타났습니다.
먼저 코드의 의도에 대해 이야기하고 올바른지 확인하겠습니다.
채팅 인터페이스에서 받은 정보와 보낸 정보를 표시하고 싶지만 이러한 정보의 배열이 불규칙합니다.
2개의 ViewHolder를 사용하여 받은 정보와 자신이 보낸 정보에 해당하는 내용을 레이아웃 파일에 저장한다는 생각이 맞습니다. 코드를 살펴보겠습니다
if (convertView == null) {
if (getItemViewType(위치) == 0) {
ConvertView = mInflater.inflate(R.layout.item_chat_receivemsg, parent, false);
viewHolder = 새로운 ViewHolder();
viewHolder.mDate = (TextView) 변환 보기
.findViewById(R.id.tv_from_time);
viewHolder.mMsg = (TextView) 변환 보기
.findViewById(R.id.tv_from_content);
} 또 다른 {
ConvertView = mInflater.inflate(R.layout.item_chat_sendmsg, parent, false);
viewHolder = 새로운 ViewHolder();
viewHolder.mDate = (TextView) 변환 보기
.findViewById(R.id.tv_to_time);
viewHolder.mMsg = (TextView) 변환 보기
.findViewById(R.id.tv_to_content);
}
ConvertView.setTag(viewHolder);
}
분명히 귀하의 코드는 하나의 ViewHolder만 저장하며 일반적으로 정보를 받는 ViewHolder는 if (convertView == null)
의 코드 문이 시작 부분에 있기 때문에 저장됩니다. 한 번.
해결책 아이디어 제공:
convertView와 ViewHolder 두 개를 사용하여 받은 정보와 직접 보낸 정보를 저장합니다.
ChatMessageBean에 필드를 추가하여 정보를 보낼지 받을지 결정합니다.
getView
에서 ChatMessageBean chatMessageBean = messageBeans.get(position);
의 새 필드를 기반으로 정보를 보낼지 받을지 여부를 결정한 다음 해당 ViewHolder는 해당 ConvertView를 처리하고 반환합니다.