xlistview

来源:互联网 发布:国家创新训练项目 知乎 编辑:程序博客网 时间:2024/05/22 22:50
package com.example.dailin.Fragment;import android.content.Intent;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.AdapterView;import android.widget.Toast;import com.example.dailin.ContentActivity;import com.example.dailin.R;import com.example.dailin.adapter.XListAdapter;import com.example.dailin.bean.MyBean;import com.google.gson.Gson;import com.limxing.xlistview.view.XListView;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.List;/** * Created by Administrator on 2017/9/11 0011. */public class fragment01 extends Fragment implements XListView.IXListViewListener{    private XListView xlv;    private boolean flag;    private XListAdapter adapter;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment01, container, false);        xlv =(XListView) view.findViewById(R.id.xlv);        xlv.setXListViewListener(this);        xlv.setPullLoadEnable(true);        xlv.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {                MyBean.ResultBean.DataBean bean = (MyBean.ResultBean.DataBean) adapter.getItem(i-1);                Intent intent=new Intent(getActivity(), ContentActivity.class);                intent.putExtra("info",bean.getUrl());                Toast.makeText(getContext(),bean.getUrl(),Toast.LENGTH_SHORT).show();                getActivity().startActivity(intent);            }        });        return view;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        data();    }    public void data() {        getdata("http://v.juhe.cn/toutiao/index?type=guoji&key=54e3d5f4ee64f51bef570ce8505d37b5");    }    public void getdata(String path) {        new AsyncTask<String,Void,String>() {            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);                if (s == null) {                    return;                }                    Gson gson = new Gson();                    MyBean bean = gson.fromJson(s, MyBean.class);                    List<MyBean.ResultBean.DataBean> list = bean.getResult().getData();                    if (adapter == null) {                        adapter = new XListAdapter(list, getActivity());                        xlv.setAdapter(adapter);                    } else {                        adapter.enough(list, flag);                    }            }            @Override            protected String doInBackground(String... strings) {                try {                    URL url = new URL(strings[0]);                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();                    connection.setRequestMethod("GET");                    connection.setReadTimeout(5000);                    connection.setConnectTimeout(5000);                    int code = connection.getResponseCode();                    if (code == 200) {                        InputStream is = connection.getInputStream();                        String str = json(is);                        return str;                    }                } catch (Exception e) {                    e.printStackTrace();                }                return null;            }        }.execute(path);    }    public String json(InputStream is) {        try {            ByteArrayOutputStream baos = new ByteArrayOutputStream();            byte[] buffer = new byte[1024];            int len = 0;            while ((len = is.read(buffer)) != -1) {                baos.write(buffer,0,len);            }            baos.close();            return baos.toString();        } catch (Exception e) {            e.printStackTrace();        }        return null;    }   @Override    public void onRefresh() {        flag = false;        data();        xlv.stopRefresh(true);    }    @Override    public void onLoadMore() {        flag = true;        data();        xlv.stopLoadMore();    }}
package com.example.dailin.adapter;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.example.dailin.R;import com.example.dailin.bean.MyBean;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by Administrator on 2017/9/13 0013. */public class XListAdapter extends BaseAdapter {    private List<MyBean.ResultBean.DataBean> list;    private Context context;    private DisplayImageOptions options;    public XListAdapter(List<MyBean.ResultBean.DataBean> list, Context context) {        this.list = list;        this.context = context;        options = new DisplayImageOptions.Builder().build();    }    public void enough(List<MyBean.ResultBean.DataBean> data, boolean flag) {        for (MyBean.ResultBean.DataBean bean : data) {            if (flag) {                list.add(bean);            } else {                list.add(0, bean);            }        }        notifyDataSetChanged();    }    @Override    public int getCount() {        return list != null ? list.size() : 0;    }    @Override    public Object getItem(int i) {        return list.get(i);    }    @Override    public long getItemId(int i) {        return i;    }    @Override    public int getViewTypeCount() {        return 2;    }    @Override    public int getItemViewType(int position) {        if (position % 2 == 0) {            return 0;        } else {            return 1;        }    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        int type = getItemViewType(i);        ViewHolder1 holder1 = null;        ViewHolder2 holder2 = null;        MyBean.ResultBean.DataBean bean = list.get(i);        switch (type) {            case 0: {                if (view == null) {                    holder1 = new ViewHolder1();                    view = View.inflate(context, R.layout.item2, null);                    holder1.tv_title1 = (TextView) view.findViewById(R.id.tv_title1);                    holder1.img_inco1 = (ImageView) view.findViewById(R.id.img_inco1);                    holder1.img_inco2 = (ImageView) view.findViewById(R.id.img_inco2);                    holder1.img_inco3 = (ImageView) view.findViewById(R.id.img_inco3);                    view.setTag(holder1);                } else {                    holder1 = (ViewHolder1) view.getTag();                }                holder1.tv_title1.setText(bean.getTitle());                ImageLoader.getInstance().displayImage(bean.getThumbnail_pic_s(), holder1.img_inco1, options);                ImageLoader.getInstance().displayImage(bean.getThumbnail_pic_s02(), holder1.img_inco2, options);                ImageLoader.getInstance().displayImage(bean.getThumbnail_pic_s03(), holder1.img_inco3, options);            }            break;            case 1: {                if (view == null) {                    holder2 = new ViewHolder2();                    view = View.inflate(context, R.layout.item3, null);                    holder2.tv_title2 = (TextView) view.findViewById(R.id.tv_title2);                    holder2.img_inco4 = (ImageView) view.findViewById(R.id.img_inco4);                    view.setTag(holder2);                } else {                    holder2 = (ViewHolder2) view.getTag();                }                holder2.tv_title2.setText(bean.getTitle());                ImageLoader.getInstance().displayImage(bean.getThumbnail_pic_s(), holder2.img_inco4, options);            }            break;        }        return view;    }    class ViewHolder1 {        TextView tv_title1;        ImageView img_inco1, img_inco2, img_inco3;    }    class ViewHolder2 {        TextView tv_title2;        ImageView img_inco4;    }}
 
原创粉丝点击