Ответ 1
реализует OnScrollListener
public class NewsCategoryDC extends Activity implements OnScrollListener {
и установите OnScrollListener в listView
listView.setOnScrollListener(NewsCategoryDC.this);
и вы можете получить первые и последние видимые строки
@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));
}
}