xlistview上拉刷新下拉加载以及多条目加载

xlistview上拉刷新下拉加载以及多条目加载

package bwie.com.zhoukao2_lianxi;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.gson.Gson;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;

import bwie.com.xlistviewlibrary.view.XListView;

public class Frag1 extends Fragment {
    private int type =1;
    private int page =1;
    private XListView xlv;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.frag1, container, false);
        //初始化
        xlv = view.findViewById(R.id.xlistview);
        //设置加载更多 上啦shuaxin
        xlv.setPullRefreshEnable(true);
        xlv.setPullLoadEnable(true);
        //设置点击事件
        xlv.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                page=1;
                type=1;
                new MyAsy().execute();
            }

            @Override
            public void onLoadMore() {
                page++;
                type=2;
                new MyAsy().execute();
            }
        });
new MyAsy().execute();
        return view;
    }
    class MyAsy extends AsyncTask<String,String,String>
    {

        private MyAdapter myAdapter;

        @Override
        protected String doInBackground(String... strings) {
            String meassage="";
            try
            {
                String path ="http://www.xieast.com/api/news/news.php?page="+page;
                URL url = new URL(path);
                HttpURLConnection connection = (HttpURLConnection)url.openConnection();
                connection.setRequestMethod("GET");
                connection.setConnectTimeout(5000);
                connection.setReadTimeout(4000);
                connection.connect();
                InputStream inputStream = connection.getInputStream();
                byte[] b = new byte[1024];
                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                int len =0;
                while ((len = inputStream.read(b))!=-1)
                {
                    outputStream.write(b,0,len);
                }
               meassage = outputStream.toString().trim();
                inputStream.close();
                connection.disconnect();
            }catch (Exception e)
            {

            }
            return meassage;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Log.i("onPostExecute","s是不是"+s);
            if(s!=null)
            {
                Gson gson = new Gson();
                Bean bean = gson.fromJson(s, Bean.class);
                if(bean!=null)
                {
                    if (type ==1)
                    {
                        myAdapter = new MyAdapter(getActivity(), bean);
                        xlv.setAdapter(myAdapter);
                        new Handler().postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                Date date = new Date(System.currentTimeMillis());
                                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
                                String ss = format.format(date);
                                xlv.setRefreshTime(ss);
                                xlv.stopRefresh();
                                myAdapter.notifyDataSetChanged();
                            }
                        },1000);
                    }
                    if (type ==2)
                    {
                        myAdapter = new MyAdapter(getActivity(), bean);
                        xlv.setAdapter(myAdapter);
                        new Handler().postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                xlv.stopLoadMore();
                                myAdapter.notifyDataSetChanged();
                            }
                        },1000);
                    }
                }
            }
        }
    }
}

创建bean类

package bwie.com.zhoukao2_lianxi;

import java.io.Serializable;
import java.util.List;

public class Bean implements Serializable
{
    private String msg;
    private int code;
    private List<DataBean> data;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public List<DataBean> getData() {
        return data;
    }

    public void setData(List<DataBean> data) {
        this.data = data;
    }

    public static class DataBean {
        

        private String uniquekey;
        private String title;
        private String date;
        private String category;
        private String author_name;
        private String url;
        private String thumbnail_pic_s;
        private String thumbnail_pic_s02;
        private String thumbnail_pic_s03;

        public String getUniquekey() {
            return uniquekey;
        }

        public void setUniquekey(String uniquekey) {
            this.uniquekey = uniquekey;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public String getDate() {
            return date;
        }

        public void setDate(String date) {
            this.date = date;
        }

        public String getCategory() {
            return category;
        }

        public void setCategory(String category) {
            this.category = category;
        }

        public String getAuthor_name() {
            return author_name;
        }

        public void setAuthor_name(String author_name) {
            this.author_name = author_name;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public String getThumbnail_pic_s() {
            return thumbnail_pic_s;
        }

        public void setThumbnail_pic_s(String thumbnail_pic_s) {
            this.thumbnail_pic_s = thumbnail_pic_s;
        }

        public String getThumbnail_pic_s02() {
            return thumbnail_pic_s02;
        }

        public void setThumbnail_pic_s02(String thumbnail_pic_s02) {
            this.thumbnail_pic_s02 = thumbnail_pic_s02;
        }

        public String getThumbnail_pic_s03() {
            return thumbnail_pic_s03;
        }

        public void setThumbnail_pic_s03(String thumbnail_pic_s03) {
            this.thumbnail_pic_s03 = thumbnail_pic_s03;
        }
    }
}

//适配器内容

package bwie.com.zhoukao2_lianxi;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.ImageLoader;

public class MyAdapter extends BaseAdapter {
    Context context;
    Bean bean;
    private ViewHolder1 viewHolder1;
    private ViewHolder2 viewHolder2;
    private ViewHolder3 viewHolder3;

    public MyAdapter(Context context, Bean bean) {
        this.bean = bean;
        this.context = context;
    }

    @Override
    public int getViewTypeCount() {
        return 3;
    }

    @Override
    public int getItemViewType(int position) {
        return position % 3;
    }

    @Override
    public int getCount() {
        return bean.getData().size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        int type = getItemViewType(position);
        switch (type) {
            case 0:
                if (convertView == null) {
                    viewHolder1 = new ViewHolder1();
                    convertView = View.inflate(context, R.layout.frag_01, null);
                    viewHolder1.img1 = convertView.findViewById(R.id.img1);
                    viewHolder1.title1 = convertView.findViewById(R.id.title1);
                    viewHolder1.data1 = convertView.findViewById(R.id.data1);
                    convertView.setTag(viewHolder1);
                } else {
                    viewHolder1 = (ViewHolder1) convertView.getTag();
                }
                viewHolder1.data1.setText(bean.getData().get(position).getDate());
                viewHolder1.title1.setText(bean.getData().get(position).getTitle());
                ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s(), viewHolder1.img1);

                break;
            case 1:
                if (convertView == null) {
                    viewHolder2 = new ViewHolder2();
                    convertView = View.inflate(context, R.layout.frag_02, null);
                    viewHolder2.img1 = convertView.findViewById(R.id.img1);
                    viewHolder2.img2 = convertView.findViewById(R.id.img2);
                    viewHolder2.title2 = convertView.findViewById(R.id.title2);
                    viewHolder2.data2 = convertView.findViewById(R.id.data2);
                    convertView.setTag(viewHolder2);
                } else {
                    viewHolder2 = (ViewHolder2) convertView.getTag();
                }
                viewHolder2.data2.setText(bean.getData().get(position).getDate());
                viewHolder2.title2.setText(bean.getData().get(position).getTitle());
                ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s02(), viewHolder2.img1);
                ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s(), viewHolder2.img2);
                break;
            case 2:
                if (convertView == null) {
                    viewHolder3 = new ViewHolder3();
                    convertView = View.inflate(context, R.layout.frag_03, null);
                    viewHolder3.img1 = convertView.findViewById(R.id.img1);
                    viewHolder3.img2 = convertView.findViewById(R.id.img2);
                    viewHolder3.img3 = convertView.findViewById(R.id.img3);
                    viewHolder3.title3 = convertView.findViewById(R.id.title3);
                    viewHolder3.data3 = convertView.findViewById(R.id.data3);
                    convertView.setTag(viewHolder3);
                } else {
                    viewHolder3 = (ViewHolder3) convertView.getTag();
                }
                viewHolder3.data3.setText(bean.getData().get(position).getDate());
                viewHolder3.title3.setText(bean.getData().get(position).getTitle());
                ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s(), viewHolder3.img1);
                ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s(), viewHolder3.img2);
                ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s(), viewHolder3.img3);
                break;

        }
        return convertView;
    }

    class ViewHolder1 {
        ImageView img1;
        TextView title1;
        TextView data1;
    }
    class ViewHolder2 {
        ImageView img1;
        ImageView img2;
        TextView title2;
        TextView data2;
    }
    class ViewHolder3 {
        ImageView img1;
        ImageView img2;
        ImageView img3;
        TextView title3;
        TextView data3;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值