मेरे पास एंड्रॉइड में एक ग्रिड व्यू है जिसे मैं इसे एक्सएमएल संसाधन से पुनर्प्राप्त डेटा के साथ भरता हूं।
उदाहरण के लिए मेरे पास ग्रिड व्यू में 15 आइटम हैं जो क्रम में रखे गए हैं। कुल ऊंचाई स्क्रीन की ऊंचाई से अधिक है इसलिए मुझे बाकी वस्तुओं को देखने के लिए स्क्रॉल करना होगा।
समस्या तब होती है जब मैं बैक अप करता हूं, अदृश्य पंक्तियों का क्रम बदल गया है। यह एक रहस्यमय व्यवहार है क्योंकि कभी-कभी आइटम एक दूसरे के साथ पंक्तियों को स्वैप करते हैं।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;
}
अपडेट:: खैर, यह है बल्कि अजीब यहाँ मेरी getView
तरीका है। कुछ और डिबगिंग के बाद मैंने देखा कि ग्रिड व्यू में, एडाप्टर 13 वां स्थान छोड़ देता है, जिसका अर्थ है कि यह 13 के बजाय 1 लौटाता है और फिर 14 पर चलता है !!! (मुझे लगता है कि 13 दुर्भाग्य है!)
'एडाप्टर' स्थिति स्वयं को छोड़ नहीं पाएगा। अपने एडाप्टर के लिए पूरा कोड पोस्ट करें। – Luksprog
ठीक है, मैंने पूरे एडाप्टर को वहां रखा है। –