मेरी पंक्तियों में एक बटन होता है जिसमें मेरे एडाप्टर के getView में अपना स्वयं का क्लिक श्रोता सेट होता है। मैं पंक्ति के माता-पिता में एंड्रॉइड: descendantFocusability = "blockDescendants" का उपयोग करके अपने बटन क्लिक और वास्तविक पंक्ति आइटम क्लिक के बीच अंतर करने में सक्षम हूं।एंड्रॉइड: ListView पंक्ति में बदलें बटन पृष्ठभूमि ऑनक्लिक
जब मैं एक बटन पर क्लिक करता हूं तो यह बटन पृष्ठभूमि को ठीक से सेट करता है, मेरी समस्या यह है कि मैं सूची के माध्यम से स्क्रॉल करता हूं और इसे विभिन्न पंक्तियों के लिए भी सेट करता हूं। मैं विचारों को रीसाइक्लिंग के साथ कहीं भी एक मुद्दा मानता हूं।
@Override
public View getView(int position, View convertView, ViewGroup parent){
if(convertView == null){
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.todays_sales_favorite_row, null);
holder.favCatBtn = (Button)convertView.findViewById(R.id.favCatBtn);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
holder.favCatBtn.setTag(position);
holder.favCatBtn.setOnClickListener(this);
return convertView;
}
@Override
public void onClick(View v) {
int pos = (Integer) v.getTag();
Log.d(TAG, "Button row pos click: " + pos);
RelativeLayout rl = (RelativeLayout)v.getParent();
holder.favCatBtn = (Button)rl.getChildAt(0);
holder.favCatBtn.setBackgroundResource(R.drawable.icon_yellow_star_large);
}
तो अगर मैं एकदम सही ढंग से पंक्ति स्थिति 1 बटन पृष्ठभूमि परिवर्तन पर बटन पर क्लिक करें:
यहाँ मेरी कोड है। लेकिन जब मैं सूची को नीचे स्क्रॉल करता हूं तो यादृच्छिक अन्य बटन भी सेट हो रहे हैं। फिर कभी-कभी जब मैं स्थिति 1 पर वापस स्क्रॉल करता हूं तो बटन पृष्ठभूमि फिर से मूल पर वापस आती है।
मुझे यहां क्या याद आ रही है? मुझे पता है कि मैं वहीं कुछ मामूली हूं जो मैं नहीं कर रहा हूं।
जब आप if (true || convertView == null) {... (तो यह हमेशा फुलाया जाता है) में बदल जाता है, तो क्या यह ठीक काम करता है? कोई समाधान नहीं, सिर्फ यह जानना है कि समस्या तब प्रकट नहीं होती है या नहीं। –
हाँ जो पृष्ठभूमि को अन्य यादृच्छिक पंक्तियों में बदलने से रोकता है। स्पष्ट रूप से आपके जैसा समाधान नहीं कहा गया है, लेकिन हाँ जब तक मैं बैक अप नहीं करता तब तक यह समस्या को रोकता है और बटन वापस अपनी मूल पृष्ठभूमि में वापस आ जाता है। – askilondz