Por que os itens mudam de ordem após a rolagem no Android GridView?

Eu tenho um GridView no android que eu preenchê-lo com dados recuperados de um recurso xml.
Por exemplo, eu tenho 15 itens no GridView que são colocados em ordem. A altura total excede a altura da tela, então eu tenho que rolar para ver o resto dos itens.
O problema é quando eu rola para cima, a ordem das linhas invisíveis mudou. É um comportamento misterioso, pois às vezes os itens trocam linhas entre si. Aqui está o meugetView método:

public class ImageAdapter extends BaseAdapter {
        public ImageAdapter(Context c, NodeList cuu) {
                cu = cuu;
        }
        public int getCount() {
                Log.d("Node Count",cu.getLength()+"");
                return cu.getLength();
        }
        public Object getItem(int position) {
                return position;
        }
        public long getItemId(int position) {
                return position;
        }
        public View getView(int position, View convertView, ViewGroup parent) {
                View myView = convertView;
                if (convertView == null) {
                    Node nd = cu.item(position);
                    Log.d("nodes","Pos: "+(position)+" Name: "+nd.getNodeName()+" Title: "+nd.getAttributes().getNamedItem("title").getTextContent());
                    int catID = Integer.parseInt(nd.getAttributes().getNamedItem("id").getTextContent());
                    LayoutInflater li = getLayoutInflater();
                    myView = li.inflate(R.layout.grid_item, null);
                   ImageView imageView = (ImageView) myView.findViewById(R.id.grid_item_image);
                   myView.setLayoutParams(new GridView.LayoutParams(70, 100));
                   id.download(nd.getAttributes().getNamedItem("icon").getTextContent(),imageView);
                   TextView textView = (TextView) myView.findViewById(R.id.grid_item_text);
                   textView.setText(nd.getAttributes().getNamedItem("title").getTextContent());
                   myView.setTag((Object) catID);
                }else{
                    //Log.d("nodes","Pos: "+(position));
                }
                return myView;
        }
        private NodeList cu = null;
    }

Atualizar: Bem, é bastante estranho. Depois de um pouco mais de depuração, notei que no GridView, o adaptador pula a 13ª posição, o que significa que ele retorna 1 em vez de 13 e depois passa para 14 !!! (Eu acho que o 13 é azar!)

questionAnswers(6)

yourAnswerToTheQuestion