我正在使用chrisbanes的pulltorefresh listview,我发现它here
我成功地实现了它,感谢它的记录。:)
然而,我现在陷入了这一点。我使用截击从服务器获取数据。它工作得很好,直到我添加了一个检查,看看是否没有更多的数据,然后简单地祝酒用户。
我确实喜欢下面,

@Override
public void onRefresh(
   PullToRefreshBase<ListView> refreshView) {
     if (hasMoreData()){

        //Call service when pulled to refresh
        orderService();

     } else{

        // Call onRefreshComplete when the list has been refreshed.
        toastShort("No more data to load");
        orderListAdapter.notifyDataSetChanged();
        mPullRefreshListView.onRefreshComplete();

    }
}

祝酒词上来了,但我也继续看到装载…我的列表视图下面的消息。我想应该由onRefreshComplete();来处理,但没有。
我该怎么做?请帮忙。

最佳答案

在撞了我的头将近3个小时后,我终于解决了这个问题。很简单很难。
我所做的是创建一个处理程序和一个runnable,它调用mPullRefreshListView.onRefreshComplete();并在一段时间后检查是否mPullRefreshListView仍在刷新,然后再次调用方法,在下次调用时关闭它。:)
代码是这样的..

@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
 if (hasMoreData()) {
    // Call service when pulled to refresh
    toastShort("Last");
    orderService();
 } else {
    // Call onRefreshComplete when the list has been
    // refreshed.
    toastShort("No more data to load");
    upDatePull();  //this method does the trick
 }
}


private void upDatePull() {
 // lvOrders.setAdapter(null);
 handler = new Handler();
 handler.postDelayed(runnable, 1000);
}

Runnable runnable = new Runnable() {
@Override
public void run() {
    mPullRefreshListView.onRefreshComplete();
    if (mPullRefreshListView.isRefreshing()) {
        Logger.d("xxx", "trying to hide refresh");
        handler.postDelayed(this, 1000);
    }
}
};

学分this link.

07-27 14:51