Android 数据无限的List实现(滚动到底部,请求数据)

By

当ListView到达底部时,请求更多的数据。


One solution is to implement an OnScrollListener and make changes (like adding items, etc.) to the ListAdapter at a convenient state in its onScroll method.

The following ListActivity shows a list of integers, starting with 40, adding items when the user scrolls to the end of the list.

public class Test extends ListActivity implements OnScrollListener {     Aleph0 adapter = new Aleph0();     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setListAdapter(adapter);         getListView().setOnScrollListener(this);     }     public void onScroll(AbsListView view,         int firstVisible, int visibleCount, int totalCount) {         boolean loadMore = /* maybe add a padding */             firstVisible + visibleCount >= totalCount;         if(loadMore) {             adapter.count += visibleCount; // or any other amount             adapter.notifyDataSetChanged();         }     }     public void onScrollStateChanged(AbsListView v, int s) { }         class Aleph0 extends BaseAdapter {         int count = 40; /* starting amount */         public int getCount() { return count; }         public Object getItem(int pos) { return pos; }         public long getItemId(int pos) { return pos; }         public View getView(int pos, View v, ViewGroup p) {                 TextView view = new TextView(Test.this);                 view.setText("entry " + pos);                 return view;         }     } } 

You should obviously use separate threads for long running actions (like loading web-data) and might want to indicate progress in the last list item (like the market or gmail apps do).


你可能感兴趣的:(android,ListView,object,list,Class,Gmail)