上下拉刷新

来源:互联网 发布:轻而易举软件瓷砖教程 编辑:程序博客网 时间:2024/04/27 21:57
package com.bwie.yuekao01.fragment;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.AsyncTask;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import com.bwie.yuekao01.R;import com.bwie.yuekao01.bean.MenuInfo;import com.google.gson.Gson;import com.limxing.xlistview.view.XListView;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.ryane.banner_lib.AdPageInfo;import com.ryane.banner_lib.AdPlayBanner;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLConnection;import java.net.URLEncoder;import java.util.ArrayList;import java.util.List;/** * Created by Shadow on 2017/7/21. */public class TtFragment extends Fragment implements XListView.IXListViewListener {    private View view;    private AdPlayBanner adc;    private XListView xlv;    private MyXadapter xadapter;    boolean flag;    int index = 0;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        view = inflater.inflate(R.layout.fragment01, container, false);        return view;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        xlv = (XListView) view.findViewById(R.id.xlv);        adc = (AdPlayBanner) view.findViewById(R.id.adc);        banner();        xlv.setPullLoadEnable(true);        xlv.setXListViewListener(this);    }    private void loadData(String path, String pn, String rn) {        new AsyncTask<String, Void, String>() {            @Override            protected String doInBackground(String... params) {                String url = params[0];                String pn = params[1];                String rn = params[2];                try {                    HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();                    connection.setConnectTimeout(5000);                    connection.setReadTimeout(5000);                    connection.setRequestMethod("POST");                    OutputStream os = connection.getOutputStream();                    os.write(("key=85ccc6561e8247986f378b20ef34589a&menu=" +                            URLEncoder.encode("红烧肉", "utf-8") + "&pn=" + pn + "&rn=" + rn).getBytes());                    os.flush();                    if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {                        InputStream is = connection.getInputStream();                        ByteArrayOutputStream baos = new ByteArrayOutputStream();                        int len = 0;                        byte[] bytes = new byte[1024];                        while ((len = is.read(bytes)) != -1) {                            baos.write(bytes, 0, len);                        }                        is.close();                        baos.close();                        System.out.println("*******************************" + baos.toString());                        return baos.toString();                    }                } catch (IOException e) {                    e.printStackTrace();                }                return null;            }            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);                if (s != null) {                    Gson gson = new Gson();                    MenuInfo menuInfo = gson.fromJson(s, MenuInfo.class);                    List<MenuInfo.ResultBean.DataBean> list = menuInfo.getResult().getData();                    if (xadapter == null) {                        System.out.println("**********************xadapternull");                        xadapter = new MyXadapter(list);                        xlv.setAdapter(xadapter);                    } else {                        System.out.println("**********************xadapter不为null");                        xadapter.loadMore(list, flag);                        xadapter.notifyDataSetChanged();                    }                }            }        }.execute(path, pn, rn);    }    @Override    public void onRefresh() {        index++;        flag = true;        loadData("http://apis.juhe.cn/cook/query.php", index + "", "10");        xlv.stopRefresh(true);    }    @Override    public void onLoadMore() {        index++;        flag = false;        loadData("http://apis.juhe.cn/cook/query.php", index + "", "10");        xlv.stopLoadMore();    }    class MyXadapter extends BaseAdapter {        List<MenuInfo.ResultBean.DataBean> list;        DisplayImageOptions options;        public MyXadapter(List<MenuInfo.ResultBean.DataBean> list) {            this.list = list;            options = new DisplayImageOptions.Builder()                    .showImageOnFail(R.mipmap.ic_launcher)                    .cacheInMemory(true)                    .cacheOnDisk(true)                    .build();        }        public void loadMore(List<MenuInfo.ResultBean.DataBean> lists, boolean flag) {            for (MenuInfo.ResultBean.DataBean bean : lists) {                if (flag) {                    list.add(0, bean);                } else {                    list.add(bean);                }            }        }        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int position) {            return list.get(position);        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            if (convertView == null) {                convertView = convertView.inflate(getActivity(), R.layout.xlistview_item, null);            }            ImageView ivIcon = (ImageView) convertView.findViewById(R.id.ivIcon);            TextView tvContent = (TextView) convertView.findViewById(R.id.tvContent);            tvContent.setText(list.get(position).getTitle());            ImageLoader.getInstance().displayImage(list.get(position).getAlbums().get(0), ivIcon, options);            return convertView;        }    }    private void banner() {        AdPageInfo adPageInfo = new AdPageInfo("标题1", "http://img.hb.aicdn.com/23a6354ab270ea5af40d8e3542802aad8ea5c69967150-6Yan83_fw580", null, 0);        AdPageInfo adPageInfo2 = new AdPageInfo("标题2", "http://img.article.pchome.net/00/52/00/56/pic_lib/wm/7.jpg", null, 0);        AdPageInfo adPageInfo3 = new AdPageInfo("标题3", "http://img.zcool.cn/community/0119d65618cbae6ac7255b1498115e.png", null, 0);        ArrayList<AdPageInfo> list = new ArrayList<>();        list.add(adPageInfo);        list.add(adPageInfo2);        list.add(adPageInfo3);        adc.setInfoList(list);        adc.setIndicatorType(AdPlayBanner.IndicatorType.NUMBER_INDICATOR);        adc.setUp();    }}
原创粉丝点击