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

来源:互联网 发布:电脑软件怎么清除数据 编辑:程序博客网 时间:2024/06/07 19:39

By

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


One solution is to implement an OnScrollListener and make changes (like adding items, etc.) to theListAdapter 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).


原创粉丝点击