【发布时间】:2015-06-05 11:15:15
【问题描述】:
这可能是个奇怪的问题,我知道这里是否会被否决
所以我有一个自定义适配器(使用 ViewHolder 模式),它有这样的视图:
private class ViewHolder {
ImageView chatImage;
TextView chatName;
TextView lastMessage;
TextView lastMessageTime;
TextView unreadMessagesCount;
//ViewStub avatarsViewStub;
}
private ViewHolder createViewHolder (View view) {
ViewHolder holder = new ViewHolder();
holder.chatImage = (ImageView) view.findViewById(R.id.chat_image);
holder.chatName = (TextView) view.findViewById(R.id.chat_participant_name);
holder.lastMessage = (TextView) view.findViewById(R.id.last_message);
holder.lastMessageTime = (TextView) view.findViewById(R.id.last_message_time);
holder.unreadMessagesCount = (TextView) view.findViewById(R.id.unread_messages_count);
return holder;
}
TextView unreadMessagesCount 应该显示未读消息的数量,并且每当有新消息出现时都应该更新。但正如你所看到的,有很多 Views,我的目标是:只更新 unreadMessagesCount 而不是在调用 adapter.notifyDataSetChanges() 时调用整个 getView,我想知道这是否可能
编辑:我已经发布了我当前的解决方案作为答案之一,但我们仍在寻找更好的方法
【问题讨论】:
-
我认为这不可能。不过我有兴趣知道
标签: android listview baseadapter