2012-10-29 29 views
18

शीर्षक के रूप में: मैं जानना चाहता हूं कि मेरे एडाप्टर व्यू में वर्तमान में प्रदर्शित सभी आइटमों की सूची (सरणी) कैसे प्राप्त करें।
क्यों? मेरे एडाप्टर व्यू में प्रदर्शित ऑब्जेक्ट्स को एडाप्टर व्यू को बंद करने के बाद श्रोता को रिलीज़ करने की आवश्यकता होती है। मुझे अपने ऐप को अनुकूलित करने के लिए इसे करने की ज़रूरत है।
या क्या कोई तरीका है (जिसे मैं ओवरराइड कर सकता हूं) जिसे विचारों के विनाश पर निष्पादित किया जाता है?वर्तमान में एडाप्टर व्यू में प्रदर्शित आइटम कैसे प्राप्त करें?

उत्तर

28

औजार OnScrollListener

public class NewsCategoryDC extends Activity implements OnScrollListener { 

और ListView

listView.setOnScrollListener(NewsCategoryDC.this); 

में OnScrollListener सेट और आप पहली और आखिरी दृश्य पंक्तियां

@Override 
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) { 
    firstVisibleRow = listView.getFirstVisiblePosition(); 
      lastVisibleRow = listView.getLastVisiblePosition(); 
/*Now you get the first and last visible rows, and you easily get the rows from first to last visible row and allocate resources to visible rows or deallocate resources to rows except visible rows..,.*/ 
} 

@Override 
public void onScrollStateChanged(AbsListView view, int scrollState) {} 

प्राप्त कर सकते हैं इस कोशिश .. ,।

और अगर आपको कोई अन्य बेहतरीन तरीका मिल गया है तो कृपया पोस्ट करें, यह बहुत उपयोगी और अच्छा सवाल है ..,।

धन्यवाद ..,।

संपादित ............................

Onscroll में

ऐड कोड() विधि

@Override 
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) { 
    int firstVisibleRow = listView.getFirstVisiblePosition(); 
    int lastVisibleRow = listView.getLastVisiblePosition(); 

    for(int i=firstVisibleRow;i<=lastVisibleRow;i++) 
    { 
     //Write your code here(allocation/deallocation/store in array etc.) 
     System.out.println(i + "=" + listView.getItemAtPosition(i)); 
    } 
} 
+0

यह बहुत अच्छी बात है, मुझे इसके बारे में पता नहीं था। लेकिन अब: वास्तविक विचार कैसे प्राप्त करें? मेरा मतलब है ViewGroup.getChildAt (स्थिति) की तरह कुछ लेकिन AbsListView में उपयोग करने के लिए। – RedScorpio

+0

धन्यवाद! यह काम कर रहा है! – RedScorpio

+0

'ऑनस्क्रॉल' विधि 'AbsListView' स्वीकार करती है। क्या स्क्रॉल हैंडलर लिखने का कोई तरीका है जो इसके बजाय 'सार दृश्य' स्वीकार करता है? –

6

के रूप में छोटे संकेत:

आप सभी तत्वों को जो पूरी तरह से दिखाई दे रहे हैं प्राप्त करना चाहते हैं - आप इस पोस्ट पर गौर करना चाहिए (> उन, जो नीचे या शीर्ष पर हैं और स्क्रीन के बाहर लगभग हैं उम्मीद):

See only fully visible ListView-Items