How to get items currently displayed in AdapterView?

后端 未结 2 594
日久生厌
日久生厌 2020-12-05 10:48

As in title: I would like to know how to get list (array) of all currently displayed items in my AdapterView.
Why? Objects that are displayed in my AdapterView require r

2条回答
  •  情书的邮戳
    2020-12-05 11:28

    implements OnScrollListener

    public class NewsCategoryDC extends Activity implements OnScrollListener {
    

    and set OnScrollListener in listView

    listView.setOnScrollListener(NewsCategoryDC.this);
    

    and you can get first and last visible rows

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

    TRY THIS..,.

    and if some other best way you got please post, this is very useful and good question..,.

    Thanks..,.

    EDIT............................

    add code in onScroll() method

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

提交回复
热议问题