1.滾動加載
listView.setOnScrollListener(new OnScrollListener() {
//添加滾動條滾到最底部,加載餘下的元素
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
loadRemnantListItem();
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {}
});
listView.setOnItemSelectedListener(new OnItemSelectedListener() {
//按鍵選擇List中的item,焦點落在最下面的view上加載餘下的item
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if(footerView == view) {
loadRemnantListItem();
listView.setSelection(position – 1);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
});
private void loadRemnantListItem() {//滾到加載餘下的數據
//動態的改變listAdapter.getCount()的返回值
//使用Handler調用listAdapter.notifyDataSetChanged();更新數據
}
2.滾動翻頁
listView監聽器代碼相同
private void loadRemnantListItem() {//滾到加載餘下的數據
//重新listView.setAdapter(newsAdapter);
//使用Handler調用listAdapter.notifyDataSetChanged();更新數據
}
註:在listView最下面可以試用listView.addFooterView(footerView, null, true);來顯示“加載中…”等的字樣來美化用戶體驗,在loadRemnantListItem()方法中動態控制“加載中…”的顯示和不顯示
摘自 與時俱進