बनाना मैं क्लिक पर पंक्ति वस्तुओं के रंगों को बदलने की सुविधा के लिए एक बहुत ही सरल कर्सर कस्टम कर्सर एडाप्टर बनाना चाहता हूं। निम्नलिखित कोडकस्टम सरल कर्सर एडाप्टर
private static int save = -1;
public void onListItemClick(ListView parent, View v, int position, long id) {
parent.getChildAt(position).setBackgroundColor(Color.BLUE);
if (save != -1 && save != position){
parent.getChildAt(save).setBackgroundColor(Color.BLACK);
}
save = position;
}
का उपयोग करते हुए मैं इस धागे से कोड मिला https://stackoverflow.com/a/7649880/498449
मैं एक साधारण कर्सर अनुकूलक इस्तेमाल किया होगा और onClick में कोड रखा है, लेकिन ListFragment में डिफ़ॉल्ट सूची दृश्य पुनः उपयोग कर लेता है क्योंकि, जैसे ही आप एकाधिक दृश्यों को स्क्रॉल करते हैं उन्हें हाइलाइट किया जाता है। आईआरसी पर बात करते हुए, यह सुझाव दिया गया था कि मैं एक कस्टम कर्सर एडाप्टर बनाउंगा। हालांकि, मुझे यह नहीं लगता कि यह कैसे करना है, और जहां उपरोक्त कोड स्निपेट फिट होगा, वहां सबसे अच्छा अभ्यास नहीं लग रहा है। मदद की बहुत सराहना कर सकता है।
public class AreaCursorAdapter extends CursorAdapter {
private Context context;
public AreaCursorAdapter(Context context, Cursor c) {
super(context, c);
// TODO Auto-generated constructor stub
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView list_item = (TextView)view.findViewById(android.R.id.text1);
list_item.setText(cursor.getString(cursor.getColumnIndex(INDICATOR_NAME)));
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
bindView(v, context, cursor);
return v;
}
}
मैंने कर्सर एडाप्टर को ऑनलाइन प्राप्त कुछ कोड के साथ अद्यतन किया है। हालांकि, मुझे दो समस्याएं हैं। 1. मैं कर्सर लोडर का उपयोग कर रहा हूं, इसलिए मेरे पास कन्स्ट्रक्टर में पास करने के लिए "कर्सर" ऑब्जेक्ट नहीं है। 2. मुझे एक्लिप्स से चेतावनी मिल रही है कि निर्माता को बहिष्कृत कर दिया गया है।
newview में आप LayoutInflater.inflate के साथ एक दृश्य बनाने के लिए, bindView में आप अपने चयन पूर्णांक के अनुसार सामग्री और पृष्ठभूमि निर्धारित करते हैं, में onclick आप सिर्फ चयन int को बदलें और एडाप्टर को बताएं कि इसकी सामग्री में कोई बदलाव आया है। – zapl
@zapl क्या आप एक कोड स्निपेट दिखा सकते हैं। इसके अलावा, मैं कर्सर लोडर का उपयोग करके इसे कार्यान्वित कर रहा हूं, इसलिए मेरे पास कन्स्ट्रक्टर को पास करने के लिए "कर्सर" ऑब्जेक्ट नहीं है। –
मेरे पास अभी एक स्निपेट नहीं है :(google शायद है। लोडर के साथ 'adapter.swapCursor()' 'onLoadFinished 'में है। – zapl