0

一旦显示 ListView 中的最后一个视图,我有一个 onScrollListener 调用 AsyncTask 。AsyncTask 使用 ArrayAdapter 将数据添加到 ListView。问题是当我用它清除 ArrayAdapter 时,arrayAdapter.clear()它会清除适配器,但 AbsListView 中的所有变量仍然认为 Items 存在,因此它没有检测到我何时位于 ListView 的底部,这是 onScrollListener。

class EndlessScrollListener implements OnScrollListener {
                private int visibleThreshold = 5;
                private boolean loading = true;

                public EndlessScrollListener() {
                }
                public EndlessScrollListener(int visibleThreshold) {
                    this.visibleThreshold = visibleThreshold;
                }

                @Override
                public void onScroll(AbsListView view, int firstVisibleItem,
                        int visibleItemCount, int totalItemCount) {


                   if (loading) {
                        if (totalItemCount > previousTotal) {
                           loading = false;
                            previousTotal = totalItemCount;
                        }
                }
                    if (!loading && (firstVisibleItem + visibleItemCount) == totalItemCount) {

                        new loadComments().execute();
                        loading = true;
                    }




                }

                @Override
                public void onScrollStateChanged(AbsListView view, int scrollState) {
                } 
            }

我如何也可以重置 AbsListView 中的变量,以便它了解我何时到达 listView 的底部?

4

1 回答 1

0

打电话clear()给你后Adapter,你必须打电话adapter.notifyDataSetChanged()。以下是 API 的片段:

公共无效notifyDataSetChanged()

通知附加的观察者底层数据已更改,任何反映数据集的视图都应自行刷新。

于 2013-08-30T17:05:15.040 回答