程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> selection-android ListView 做下拉刷新 下拉跳到第一項怎麼解決

selection-android ListView 做下拉刷新 下拉跳到第一項怎麼解決

編輯:編程綜合問答
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);
}

            }

        }

最佳回答:


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

這些代碼是將listview最新那條數據添在最後面,你可以修改下就能用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved