public class GridViewFragment extends Fragment{
private PullToRefreshGridView gridView;
private String path;
private int page_num;
private List<GridDataDataBean.DataBean> list = new ArrayList<>();
private GridViewAdapter adapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_gridview_item, container, false);
gridView = view.findViewById(R.id.refresh_grid_view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=";
page_num = 1;
getDataFromNet("refresh");
gridView.setMode(PullToRefreshBase.Mode.BOTH);
ILoadingLayout startLabels = gridView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");
startLabels.setRefreshingLabel("正在拉");
startLabels.setReleaseLabel("放开刷新");
ILoadingLayout endLabels = gridView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
gridView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
page_num = 1;
getDataFromNet("operate");
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
page_num++;
getDataFromNet("load");
}
});
}
private void getDataFromNet(final String operate) {
HttpUtil.requestDataByHttp(path + page_num, getActivity(), new HttpCallBack() {
@Override
public void onRequestComplete(String json) {
Gson gson = new Gson();
GridDataDataBean gridDataDataBean = gson.fromJson(json, GridDataDataBean.class);
List<GridDataDataBean.DataBean> data = gridDataDataBean.getData();
if(operate.equals("refresh")){
list.clear();
list.addAll(0, data);
}else if(operate.equals("load")){
list.addAll(data);
}
setAdapter();
}
});
}
private void setAdapter(){
if(adapter == null){
adapter = new GridViewAdapter(getActivity(), list);
gridView.setAdapter(adapter);
}else{
adapter.notifyDataSetChanged();
}
gridView.onRefreshComplete();
gridView.setLastUpdatedLabel(new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));
}
}
private PullToRefreshGridView gridView;
private String path;
private int page_num;
private List<GridDataDataBean.DataBean> list = new ArrayList<>();
private GridViewAdapter adapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_gridview_item, container, false);
gridView = view.findViewById(R.id.refresh_grid_view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=";
page_num = 1;
getDataFromNet("refresh");
gridView.setMode(PullToRefreshBase.Mode.BOTH);
ILoadingLayout startLabels = gridView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");
startLabels.setRefreshingLabel("正在拉");
startLabels.setReleaseLabel("放开刷新");
ILoadingLayout endLabels = gridView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
gridView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
page_num = 1;
getDataFromNet("operate");
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
page_num++;
getDataFromNet("load");
}
});
}
private void getDataFromNet(final String operate) {
HttpUtil.requestDataByHttp(path + page_num, getActivity(), new HttpCallBack() {
@Override
public void onRequestComplete(String json) {
Gson gson = new Gson();
GridDataDataBean gridDataDataBean = gson.fromJson(json, GridDataDataBean.class);
List<GridDataDataBean.DataBean> data = gridDataDataBean.getData();
if(operate.equals("refresh")){
list.clear();
list.addAll(0, data);
}else if(operate.equals("load")){
list.addAll(data);
}
setAdapter();
}
});
}
private void setAdapter(){
if(adapter == null){
adapter = new GridViewAdapter(getActivity(), list);
gridView.setAdapter(adapter);
}else{
adapter.notifyDataSetChanged();
}
gridView.onRefreshComplete();
gridView.setLastUpdatedLabel(new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));
}
}