hmwzzww 2013-07-02 08:52 采纳率: 100%
浏览 4740
已采纳

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条回答

  • sunny635533 2013-07-18 10:14
    关注

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条