Ho un GridView in Android che riempio con i dati recuperati da una risorsa xml.
Ad esempio, nel GridView sono presenti 15 elementi ordinati in ordine. L'altezza complessiva supera l'altezza dello schermo, quindi devo scorrere per vedere il resto degli elementi.
Il problema è quando si esegue il backup, l'ordine delle righe invisibili è cambiato. È un comportamento misterioso visto che a volte gli oggetti si scambiano le righe l'uno con l'altro. Ecco il mio metodo getView
:Perché gli articoli cambiano ordine allo scorrimento in Android GridView?
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;
}
Aggiornamento: Beh, è piuttosto strano. Dopo un po 'di debug ho notato che nel GridView, l'adapter salta la 13a posizione, il che significa che restituisce 1 invece di 13 e poi passa a 14 !!! (Immagino che il 13 sia sfortuna!)
'Adapter' non salterà le posizioni da solo. Pubblica il codice completo per il tuo adattatore. – Luksprog
Va bene, ho messo l'intero adattatore lì. –