listview加载刷新加载更多的逻辑

一、三种网络请求方式 private static final int REQ_FIRST_GET = 0; private static final int REQ_PULL_TO_REFRESH = 1; private static final int REQ_SCROLL_TO_REFRESH = 2; 二、请求控制码 mReqCode  三、界面逻辑 (1)加载数据以前,先显示蒙版 (2)用户离线,显示离线提示 四、网络请求的处理逻辑 (1)第一步:判断是否有网络,有网络则进入网络请求,没有网络,则显示提示 REQ_FIRST_GET : mLoadingCover.onFailed(); REQ_PULL_TO_REFRESH : mPullList.getLoadingLayoutProxy(true, false).setRefreshingStatus(ILoadingLayout.REFRESHING_STATUS_FAILED); REQ_SCROLL_TO_REFRESH: mFooterView.stopLoading(Define.MSG_NULL_CONNECT); (2)网络请求返回 (2.1)失败 REQ_FIRST_GET : mLoadingCover.onFailed(); REQ_PULL_TO_REFRESH : mPullList.getLoadingLayoutProxy(true, false).setRefreshingStatus(ILoadingLayout.REFRESHING_STATUS_FAILED); REQ_SCROLL_TO_REFRESH: mFooterView.stopLoading(Define.MSG_LOAD_FAILED_LOAD_AGAIN); (2.2)成功 ret == 0 REQ_FIRST_GET ,REQ_PULL_TO_REFRESH 解析数据,到tempdata中,handler发送(清空+刷新) REQ_SCROLL_TO_REFRESH 解析数据,到tempdata中,handler发送(刷新) 更新ui ret == 0: REQ_FIRST_GET : mLoadingCover.onfinish() 判断数据和limit的值,设置footerview的显示和可点击 REQ_PULL_TO_REFRESH : mPullList.getLoadingLayoutProxy(true, false).setRefreshingStatus(ILoadingLayout.REFRESHING_STATUS_Ok); 判断数据和limit的值,设置footerview的显示和可点击 REQ_SCROLL_TO_REFRESH: 判断数据和limit的值,设置footerview的显示和可点击 ret == 2: REQ_FIRST_GET : loadingcover.onfaile() 显示离线 REQ_PULL_TO_REFRESH : listview设置失败 显示离线 REQ_SCROLL_TO_REFRESH: 设置失败 显示离线 ret == 4: REQ_FIRST_GET : loadingcover.onfaile()提示暂无数据 REQ_PULL_TO_REFRESH : listview设置失败 REQ_SCROLL_TO_REFRESH: 设置无更多数据