PullToRefreshListView重新整理資料和適配
阿新 • • 發佈:2019-02-13
PullToRefreshListView控制元件和PullToRefreshGridView控制元件,,,,一樣使用,,,,,都一樣;
PullToRefreshListView設定監聽事件是:
/** * 如果Mode設定成Mode.BOTH,需要設定重新整理Listener為OnRefreshListener2,並實現onPullDownToRefresh()、 * onPullUpToRefresh()兩個方法。 如果Mode設定成Mode.PULL_FROM_START或Mode.PULL_FROM_END,需要設定重新整理Listener為OnRefreshListener, 同時實現onRefresh()方法。 當然也可以設定為OnRefreshListener2,但是Mode.PULL_FROM_START的時候只調用onPullDownToRefresh()方法, Mode.PULL_FROM_END的時候只調用onPullUpToRefresh()方法 */ refresh_list_view.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override //下拉重新整理的時候呼叫的方法....請求第一頁的資料,清空之前的資料,然後再新增設定介面卡 public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { getRefreshData(); } @Override //上拉重新整理的時候呼叫的方法..page++,然後在請求資料 public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { //上拉重新整理/載入...載入的時候頁數++ i++; getDataFromNet(); } });
上面呼叫的getRefeshData方法
public void getRefreshData() { String path="http://gank.io/api/data/Android/10/"+i; //第一個上下文,第二個引數是介面,第三個回撥json資料 NetDataUtil.getto(getActivity(), path, new JsonCallBack() { @Override public void getjson(String json) { //解析 Gson gson = new Gson(); Data data = gson.fromJson(json, Data.class); //先清空一下資料 list.clear(); //新增到後面 list.addAll(0,data.getResults()) ; //設定介面卡 setadapter(); //設定介面卡之後停止重新整理的操作 refresh_list_view.onRefreshComplete(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); Date curDate = new Date(System.currentTimeMillis());//獲取當前時間 String str = formatter.format(curDate); startLabels.setLastUpdatedLabel("上次重新整理時間:"+str); } }); }
設定重新整理模式
/*設定pullToRefreshListView的重新整理模式,BOTH代表支援上拉和下拉,
PULL_FROM_END代表上拉,PULL_FROM_START代表下拉 */
//設定重新整理模式
refresh_list_view.setMode(PullToRefreshBase.Mode.BOTH);
重新整理時狀態區別
/*3.通過getLoadingLayoutProxy 方法來指定上拉和下拉時顯示的狀態的區別 (也就是設定向下拉的時候頭部裡面顯示的文字)*/ //此時這裡設定的是下拉重新整理的時候顯示的文字,所以第一個設定true表示現在是重新整理,第二個設定為false startLabels = refresh_list_view .getLoadingLayoutProxy(true, false); startLabels.setPullLabel("下拉重新整理"); startLabels.setRefreshingLabel("正在拉"); startLabels.setReleaseLabel("放開重新整理"); ILoadingLayout endLabels = refresh_list_view.getLoadingLayoutProxy( false, true); endLabels.setPullLabel("上拉重新整理"); endLabels.setRefreshingLabel("正在載入..."); endLabels.setReleaseLabel("放開重新整理...");
設定介面卡後停止重新整理
上拉和下拉都一樣
//設定介面卡之後停止重新整理的操作
refresh_list_view.onRefreshComplete();
設定時間重新整理
SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date curDate = new Date(System.currentTimeMillis());//獲取當前時間
String str = formatter.format(curDate);
startLabels.setLastUpdatedLabel("上次重新整理時間:"+str);