在Android中处理Swipetorefresh函数

在Android中处理Swipetorefresh函数,android,android-volley,swiperefreshlayout,Android,Android Volley,Swiperefreshlayout,我想知道有没有办法知道android中swipetorefresh()函数的状态。我的意思是,每当我调用swipetorefresh()来刷新listView时(当函数仍在反复运行时调用它),它就会执行它,尽管它仍在运行,从而使我的应用程序崩溃。当我记录它时,问题是适配器中的索引混乱,因此如果有办法知道swipetorefresh()仍在运行,我可以一次又一次地拒绝用户调用swipetorefresh()方法。您可以使用布尔值检查swipetorefresh是否正在运行 只需在onRefresh

我想知道有没有办法知道android中swipetorefresh()函数的状态。我的意思是,每当我调用swipetorefresh()来刷新listView时(当函数仍在反复运行时调用它),它就会执行它,尽管它仍在运行,从而使我的应用程序崩溃。当我记录它时,问题是适配器中的索引混乱,因此如果有办法知道swipetorefresh()仍在运行,我可以一次又一次地拒绝用户调用swipetorefresh()方法。

您可以使用布尔值检查swipetorefresh是否正在运行

只需在onRefresh()方法中设置布尔值true,并在从API调用获得响应时将其设置为false


当布尔值为true时,禁用swiperefresh。

您应该调试代码并找出导致索引出现问题的原因,这一定是由于arraylist的大小,调试它您需要停止刷新它,例如,如您在这里看到的(setRefreshing(false);),但代码将其作为最后一件事。我想你也会想先这样做,只是万一有刷新正在进行,你为什么不使用标志,例如(running=yes或no),所以当你滑动刷新集(running=yes)和完成集(running=no)时。然后,在(setRefreshing(false);)set running=no之后,在最后的刷新函数(代码)中,它是一个简单的例子(如果running=yes,则不做任何其他操作,将running=yes设置为yes并进行刷新)