I use this code in my getView:
@Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null)
If you stop using the convertView you get (which you absolutely should), and generate a whole new View to return every time, does it work right? I think the problem is in the way you reuse the views.