我对简单列表视图的 BaseAdapter 有疑问。我想在 getView 方法中使用一个持有者来在列表视图中获得更好的性能。但是当我使用支架时,所有物品都混在一起了。列表视图中的项目数量是正确的,但顺序是错误的。提前致谢。这是我在 getView 中的代码:
ChatRowView holder;
ChatActivity.chatObject currentChatObject = getItem(position);
if(convertView == null)
{
holder = new ChatRowView();
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.chat_row, null);
holder.chatComponent = new ChatComponent(mContext, currentChatObject.isLeft, currentChatObject.extraType, currentChatObject.message);
holder.chatComponent.tvName.setText(currentChatObject.name);
holder.chatComponent.tvTime.setText(currentChatObject.time);
load("some picture", holder.chatComponent.ivUser);
if(currentChatObject.extraType != ExtraContentView.eChatExtraContentType.NONE)
{
if(currentChatObject.extraType != ExtraContentView.eChatExtraContentType.GAME)
{
App.loadImage(teamsBaseUrl + "132" + "_70x70.png", holder.chatComponent.extraContentView.ivTeamLogo);
}
else
{
App.loadImage(teamsBaseUrl + "132" + "_70x70.png", holder.chatComponent.extraContentView.ivHomeTeamLogo);
App.loadImage(teamsBaseUrl + "132" + "_70x70.png", holder.chatComponent.extraContentView.ivAwayTeamLogo);
}
}
((RelativeLayout)convertView).addView(holder.chatComponent);
convertView.setTag(holder);
extraButtonsListener(holder.chatComponent);
}
else
{
holder = (ChatRowView)convertView.getTag();
}
return convertView;