Come ottenere gli elementi attualmente visualizzato nella AdapterView?

Come da titolo: vorrei sapere come ottenere la lista (array) di tutte le voci visualizzate nella mia AdapterView.
Perché? Gli oggetti vengono visualizzati nella mia AdapterView richiedere il rilascio di un ascoltatore dopo che l’utente chiude AdapterView. Ho bisogno di fare in modo di ottimizzare le mie app.

O c’è qualche metodo (che ho potuto ignorare) che viene eseguito su vista’ distruzione?

 

2 Replies
  1. 29

    implementa OnScrollListener

    public class NewsCategoryDC extends Activity implements OnScrollListener {

    e impostare OnScrollListener nella listView

    listView.setOnScrollListener(NewsCategoryDC.this);

    e si può ottenere la prima e l’ultima di righe visibili

    @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) {}

    PROVARE QUESTO..,.

    e se qualche altro modo migliore che si ha, si prega di post, questo è molto utile e bella domanda..,.

    Grazie..,.

    MODIFICA……………………….

    aggiungere il codice in onScroll() metodo

    @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));
        }
    }
    • Che gran cosa, io non sapevo di questa cosa. Ma ora: Come ottenere la vista? Voglio dire qualcosa come ViewGroup.getChildAt(posizione), ma per l’uso in AbsListView.
    • Grazie! Funziona!
    • Il OnScroll metodo accetta un AbsListView. C’è un modo per scrivere un papiro gestore, che accetta un AbstractView invece?
    • come hai fatto a ottenere questo lavoro? Non riesco a Visualizzare che ha fatto scorrere fuori di vista.
    • 1) Cercare di ottenere un numero di elementi nell’elenco e quindi scorrere con: listView.getItemAtPosition(i) 2) Il punto di questo codice è quello di ottenere viste visibili, non per ottenere tutti loro. Ma penso che se utilizzare correttamente convertView (riutilizzo) -> getView , allora si dovrebbe ottenere tutti i punti di vista.

Lascia un commento