दिलचस्प पोस्ट
नियमित अभिव्यक्ति में कैरेट्स पिकासो लाइब्रेरी, एंड्रॉइड: त्रुटि सुनने वाला का उपयोग करना "मुझे लॉग इन इन करें" – सबसे अच्छा तरीका सीएसएस चौड़ाई: कैल्क (100% -100 पीएक्स); वैकल्पिक उपयोग jquery स्तंभ नाम खोजें, जिसमें प्रत्येक पंक्ति के लिए अधिकतम मूल्य है जावा में yyyy-MM-dd प्रारूप के लिए कैलेंडर की तारीख शुरुआतीकरण पर बिट्स आकार को परिभाषित करें? डीजांगो का उपयोग करके एकल साइन ऑन (एसएसओ) लागू करना जावा कर्सर प्रदर्शन समस्या की प्रतीक्षा करें फिक्स्ड स्थिति लेकिन कंटेनर के सापेक्ष एंड्रॉइड के लिए वीओआईपी लाइब्रेरी ईएफ में GUID COMB रणनीति एक विशिष्ट स्ट्रिंग को निरस्त करने के लिए RegEx Google OAuth2 उपयोगकर्ता की पहचान कैसे करें? कैसे सी में चर पते मुद्रित करने के लिए?

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

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

Solutions Collecting From Web of "एंड्रॉइड – 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(); } } });