hmwzzww
hmwzzww
采纳率100%
2013-07-02 08:52 阅读 4.7k

android ListView 做下拉刷新 下拉跳到第一项怎么解决

listView.setonRefreshListener(new OnRefreshListener() {

        @Override
        public void onRefresh() {

            Log.e(TAG, "---下拉刷新---");
            new AsyncTask<Void, Void, Void>() {
                protected Void doInBackground(Void... params) {
                    try {
                        mylineslistlist.clear();
                        mylinesorderlist.clear();
                        list.clear();
                        getMylines(0);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return null;
                }

                protected void onPostExecute(Void result) {
                    adapter.notifyDataSetChanged();
                    listView.onRefreshComplete();
                }

            }.execute();

        }
    });
listView.setOnScrollListener(new OnScrollListener() {

        @Override
        public void onScrollStateChanged(final AbsListView view,
                int scrollState) {
            listView.onScrollStateChanged(view, scrollState);
            // 数据为空--不用继续下面代码了
            if (list.size() == 0)
                return;

            // 判断是否滚动到底部
            boolean scrollEnd = false;
            try {
                if (view.getPositionForView(loadingLayout) == view
                        .getLastVisiblePosition())
                    scrollEnd = true;
            } catch (Exception e) {
                scrollEnd = false;
            }
            if (scrollEnd) {

                // 如果是自动加载,可以在这里放置异步加载数据的代码
                Log.e("LOADMORE", "loading...");
                if (currentPage < pageNum) {
                    // Log.e(TAG, "---currentPage is " + currentPage);
                    currentPage++;
                    // Log.e(TAG, "---currentPage is " + currentPage);
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            // Log.d(TAG, "---loadData page is" +
                            // currentPage);
                            getMylines(currentPage);

// listView.setSelection(view
// .getLastVisiblePosition() - 1); // 设置选中项
// setLoadView("加载更多"); //恢复按钮文字
}
}, 1000);
} else {
listView.removeFooterView(loadingLayout);
}

            }

        }
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    qingzi635533 sunny635533 2013-07-18 10:14

    mDataArrays.add(entity);
    mAdapter.notifyDataSetChanged(); //及时通知listview更新
    lv_info_contain.setSelection(mAdapter.getCount());

    这些代码是将listview最新那条数据添在最后面,你可以修改下就能用。

    点赞 2 评论 复制链接分享
  • Jave_ JaveZh 2013-07-02 09:05

    listView.setSelection(0);是跳到第一项
    你现在是要跳到第一项还是说他自动跳到了第一项?

    点赞 评论 复制链接分享

相关推荐