In my case list view on scroll showing duplicate cells. Not working properly. this is my code in getView()

    if(convertView == null)
        {
            LayoutInflater infalInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.contact_cell, null);
        }

        try {
            if(contacts.getContacts().get(position).getPhone() != null) {
                ImageView contactIcon = (ImageView) convertView.findViewById(R.id.pic);
                TextView contactName = (TextView) convertView.findViewById(R.id.name);
                contactName.setText(contacts.getContacts().get(position).getDisplayName());
                contactIcon.setImageBitmap(contacts.getContacts().get(position).getThumbNail());
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return convertView;
有帮助吗?

解决方案

Add this to yuor getView() method

if(contacts.getContacts().get(position).getPhone() != null) {
    ImageView contactIcon = (ImageView) convertView.findViewById(R.id.pic);
    TextView contactName = (TextView) convertView.findViewById(R.id.name);
    contactName.setText(contacts.getContacts().get(position).getDisplayName());
    contactIcon.setImageBitmap(contacts.getContacts().get(position).getThumbNail());
}else{
    ImageView contactIcon = (ImageView) convertView.findViewById(R.id.pic);
    TextView contactName = (TextView) convertView.findViewById(R.id.name);
    contactName.setText("");
    contactIcon.setImageBitmap(null);
}

It happens when getPhone() returns null and convertView does not update.

其他提示

I guess this is your problem:

if(contacts.getContacts().get(position).getPhone() != null)

What are you doing if the phone is null? You are leaving the old content inside the view. You should provide some placeholders for this condition. Same thing for the exception. And btw why are you catching an exception there?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top