Android的无尽名单名单、Android

2023-09-11 10:28:10 作者:乱丗殺手

如何创建一个列表,当你达到我通知列表的末尾,所以我可以装载更多的物品?

How can I create a list where when you reach the end of the list I am notified so I can load more items?

推荐答案

一种解决办法是实施OnScrollListener并进行更改(如添加项目等)的ListAdapter在一个方便的状态,其 onScroll 方法。

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.

下面的 ListActivity 显示整数的列表,从40,添加项目当用户滚动到列表的末尾。

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

您应该很明显使用了长时间运行的操作不同的线程(如加载网页的数据),可能想表明,在最后一个列表项目进展情况(如市场或Gmail应用程序做的)。

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).

 
精彩推荐
图片推荐