दिलचस्प पोस्ट
"वैर कि = यह" के साथ जावास्क्रिप्ट गुंजाइश को समझना क्या अच्छा जावा है, शाप की तरह, टर्मिनल अनुप्रयोगों के लिए पुस्तकालय? हम इंटरफेस का उपयोग क्यों करते हैं? क्या यह केवल मानकीकरण के लिए है? MaxHeight और MaxWidth बाधाओं के साथ छवि का आकार बदलें इसे दिखाए जाने के बाद मैं कैसे सचेत बॉक्स को स्वत: लटका सकता हूं? std :: नक्शा के लिए remove_if समकक्ष Mongoose में पॉप्यूल किए जाने के बाद पूछताछ रूबी तरीके में विस्मयादिबोधक चिह्न क्यों उपयोग किए जाते हैं? जाओ json.Marshal (struct) रिटर्न "{}" पायथन में, मैं कैसे निर्धारित कर सकता हूँ कि कोई ऑब्जेक्ट विश्वसनीय है? कौन सा वर्ण एक URL अमान्य बनाते हैं? कचरा संग्रह के लिए स्थिर फ़ील्ड खुली हैं? अल्फ़ान्यूमेरिक और अंडरस्कोर के लिए नियमित अभिव्यक्ति मार्जिन और पैडिंग के बीच का अंतर? दो पूर्णांक मूल्यों को विभाजित करके फ्लोट के परिणाम कैसे प्राप्त करें?

एंड्रॉइड – listview स्थिति के आधार पर मद देखें

मेरे पास कस्टम एडॉप्टर (बेस एडेप्टर) के साथ सूची दृश्य है। मैं स्थिति के आधार पर सूची दृश्य से देखना चाहता हूं। मैंने mListView.getChildAt(position) की कोशिश की, लेकिन यह काम नहीं कर रहा है। मैं स्थिति के आधार पर आइटम को कैसे देख सकता हूं?

वेब के समाधान से एकत्रित समाधान "एंड्रॉइड – listview स्थिति के आधार पर मद देखें"

इसे इस्तेमाल करो :

 public View getViewByPosition(int pos, ListView listView) { final int firstListItemPosition = listView.getFirstVisiblePosition(); final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1; if (pos < firstListItemPosition || pos > lastListItemPosition ) { return listView.getAdapter().getView(pos, null, listView); } else { final int childIndex = pos - firstListItemPosition; return listView.getChildAt(childIndex); } } 

आप केवल सूची दृश्य से दृश्यमान दृश्य प्राप्त कर सकते हैं क्योंकि सूची दृश्य में पंक्ति दृश्य पुनः उपयोग किए जा सकते हैं। यदि आप mListView.getChildAt(0) उपयोग करते हैं, तो आपको पहले दृश्यमान दृश्य मिलता है। यह दृश्य एडॉप्टर से आइटम के साथ mListView.getFirstVisiblePosition() पर स्थित है।

सूची दृश्य बदलने के लिए उपस्थिति / जो कुछ भी पंक्ति दृश्यों को देखने के लिए सबसे पसंदीदा तरीका है, सूची में कुछ परिवर्तन करने के लिए है सूची दृश्य (ऑब्जेक्ट की सरणी जो आपके एडाप्टर में पारित हो) से खींचती है और अपने getView () में उस खाते के लिए सुनिश्चित करें फ़ंक्शन, फिर कॉल करने के द्वारा ListView को फिर से बनाएं

 notifyDataSetChanged(); 

संपादित करें: जबकि ऐसा करने का एक तरीका है, अगर आपको यह मौका करना है तो कुछ गलत कर रहे हैं। जबकि कुछ किनारे वाले मामलों में मैं सोच सकता हूँ, आम तौर पर notifyDataSetChanged() और तंत्र में निर्मित अन्य का उपयोग करने का एक तरीका है।

2 संपादित करें: लोगों में से एक आम गलतियों को इस पोस्ट के लिए टिप्पणियों में से एक के रूप में, ListView में किसी पंक्ति को चुनने / चुनने के लिए उपयोगकर्ता के प्रत्युत्तर देने के अपने तरीके से आने का प्रयास कर रहा है। ऐसा करने का एक मौजूदा तरीका है ऐसे:

 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { /* Parameters parent: The AdapterView where the click happened. view: The view within the AdapterView that was clicked (this will be a view provided by the adapter) position: The position of the view in the adapter. id: The row id of the item that was clicked. */ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //your code here } }); 

लिस्ट्यूव्यू में बहुत सारी बिल्ड-इन कार्यक्षमताएं हैं और सरल मामलों के लिए व्हील को फिर से बदलने की कोई आवश्यकता नहीं है। चूंकि ListView AdapterView विस्तार करता है , आप समान श्रोताओं को सेट कर सकते हैं, जैसे OnItemClickListener ऊपर के उदाहरण के रूप में

 Listview lv = (ListView) findViewById(R.id.previewlist); final BaseAdapter adapter = new PreviewAdapter(this, name, age); confirm.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub View view = null; String value; for (int i = 0; i < adapter.getCount(); i++) { view = adapter.getView(i, view, lv); Textview et = (TextView) view.findViewById(R.id.passfare); value=et.getText().toString(); Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show(); } } });