GridView+Fragment+上拉下拉+json解析+适配器

来源:互联网 发布:json.parse在线解析 编辑:程序博客网 时间:2024/05/20 05:55
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())));
    }


}
原创粉丝点击