1. 程式人生 > >AndroidStudioXlistview

AndroidStudioXlistview

使用一個xlistview的mod,可自行在網路下載
把mod關聯一下
在這裡插入圖片描述
程式碼:

public class Frag_XListView extends Fragment {
    private XListView xListView;
    private boolean work;
    private List<JsonBean.DataBean> data;
    private String str="http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.frag_xlistview, container, false);
        work = HttpUtils.isWork(getActivity());

        xListView = view.findViewById(R.id.frag_xlistview);
        //開啟上拉
        xListView.setPullLoadEnable(true);

        xListView.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                //下拉重新整理
                if(work){
                    HttpUtils.httpAsynTask(str, new HttpUtils.CallBackString() {
                        @Override
                        public void getData(String s) {
                            Gson gson = new Gson();
                            JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
                            data= jsonBean.getData();
                            xListView.setAdapter(new MyAdapter(getActivity(),data));
                            onLoad();
                        }

                    });
                }else{
                    Toast.makeText(getContext(),"沒有網路了",Toast.LENGTH_LONG).show();;
                }
            }

            @Override
            public void onLoadMore() {
                //快取
                //下拉
                if(work){
                    HttpUtils.httpAsynTask(str, new HttpUtils.CallBackString() {
                        @Override
                        public void getData(String s) {
                            Gson gson = new Gson();
                            JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
                            data= jsonBean.getData();
                            xListView.setAdapter(new MyAdapter(getActivity(),data));
                            onLoad();
                            data.addAll(data);
                            new MyAdapter(getActivity(),data).notifyDataSetChanged();
                        }

                    });
                }else{
                    Toast.makeText(getContext(),"沒有網路了",Toast.LENGTH_LONG).show();;
                }
            }
        });

//        if(work){
//            HttpUtils.httpAsynTask(str, new HttpUtils.CallBackString() {
//                @Override
//                public void getData(String s) {
//                    Gson gson = new Gson();
//                    JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
//                    data= jsonBean.getData();
//                    xListView.setAdapter(new MyAdapter(getActivity(),data));
//                }
//            });
//        }

        return view;
    }
    private void onLoad() {
        //停止載入更多,重置頭檢視
        xListView.stopRefresh();
        //停止載入更多,重置腳檢視
        xListView.stopLoadMore();
        //設定重新整理時間
        xListView.setRefreshTime("剛剛重新整理了");
    }
}