Android 2.3.3上的notifyDataSetChanged()奇怪的行为

时间:2013-12-10 07:04:43

标签: android listview listviewitem notifydatasetchanged

我正在实施一个聊天窗口。它在4.2模拟器上工作正常但在2.3.3模拟器上表现奇怪。我已经实施了一个自定义Adapter扩展BaseAdapter来填充ListVIewListView根据要显示的消息来刷新尊重items的列表。模拟器4.2根据需要刷新列表,但在2.3.3列表中刷新最后选择的项目。以下是我的getView函数的代码。

public View getView(int position, View convertView, ViewGroup parent) {
    View chatItem = convertView;
    if (chatItem == null) {
        if (position % 2 == 0) //TODO: Change it to arrayListChat.getUpdater
            chatItem = ((LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.chat_item_me, parent, false);
        else
            chatItem = ((LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.chat_item_support, parent, false);

        ChatListItemViewHolder viewHolder = new ChatListItemViewHolder();
        viewHolder.textViewChat = (TextView) chatItem.findViewById(R.id.textViewChat);
        chatItem.setTag(viewHolder);
    }

    ChatListItemViewHolder viewHolder = (ChatListItemViewHolder) chatItem.getTag();
    viewHolder.textViewChat.setText(arrayListChat.get(position).getMessage());
    return chatItem;
}

图片链接

模拟器4.2 http://i.imgur.com/p7LpICm.png

仿真器2.3.3 http://i.imgur.com/fxPrEdm.png

谢谢

0 个答案:

没有答案