viewpager_frament_httpconnection_xlistview+双条目加载

来源:互联网 发布:php urldecode解码 编辑:程序博客网 时间:2024/05/29 15:26
package com.example.yuekao1;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import com.google.gson.Gson;import com.nostra13.universalimageloader.core.ImageLoader;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import view.XListView;/** * author:Created by ZhouShuaiShuai on 2017-9-15. */public class F1 extends Fragment implements XListView.IXListViewListener {    ViewPager pagers;    LinearLayout ll;    XListView xlist;    Bean bean;    Mypager mypaer;    Mybase  mybase;    private static  final  int TYPE=0;    private static final  int TYPE1=1;ArrayList<Bean.DataBean.ComicsBean> list =new ArrayList<>();    int index;    Handler handler=new Handler(){        @Override        public void handleMessage(Message msg) {            index++;            pagers.setCurrentItem(index);            handler.sendEmptyMessageDelayed(0,2000);        }    };  Handler handler2 =  new Handler(){      @Override      public void handleMessage(Message msg) {      }  };    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = View.inflate(getActivity(), R.layout.fram1, null);        //初始化控件        pagers = view.findViewById(R.id.pagers);        mypaer=new Mypager();        ll = view.findViewById(R.id.ll);        mybase=new Mybase();        xlist = view.findViewById(R.id.xlist);        xlist.setXListViewListener(this);        xlist.setPullRefreshEnable(true);        xlist.setPullLoadEnable(true);        initcot();        getasyn();        getasyns();        pagers.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {                for (int i = 0; i < ll.getChildCount(); i++) {                    ImageView img = (ImageView) ll.getChildAt(i);                    if (i == position % list.size()) {                        img.setImageResource(R.drawable.point_selected);                    } else {                        img.setImageResource(R.drawable.point_mormal);                    }                }            }            @Override            public void onPageScrollStateChanged(int state) {            }        });        handler.sendEmptyMessageDelayed(0, 2000);        return view;    }    private void initcot() {        for (int i = 0; i < list.size(); i++) {            ImageView img = new ImageView(getActivity());            if (i == 0) {                img.setImageResource(R.drawable.point_selected);            } else {                img.setImageResource(R.drawable.point_mormal);            }            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(10, 10);            params.setMargins(10, 5, 10, 5);            ll.addView(img, params);        }    }private  void  getasyn(){    new AsyncTask<String, String, String>() {        @Override        protected String doInBackground(String... strings) {            return getData();        }        @Override        protected void onPostExecute(String str) {            Gson gson = new Gson();            bean = gson.fromJson(str, Bean.class);            pagers.setAdapter(mypaer);            super.onPostExecute(str);        }    }.execute();}private  void  getasyns(){  new AsyncTask<String, String, String>() {    @Override    protected String doInBackground(String... strings) {        return getData();    }    @Override    protected void onPostExecute(String str) {        Gson gson = new Gson();        bean = gson.fromJson(str, Bean.class);       xlist.setAdapter(mybase);        super.onPostExecute(str);    }}.execute();}    public String getData() {        String str = "";        try {            URL uri = new URL("http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9 ");            HttpURLConnection conn = (HttpURLConnection) uri.openConnection();            int code = conn.getResponseCode();            if (code == 200) {                InputStream stream = conn.getInputStream();                ByteArrayOutputStream arr = new ByteArrayOutputStream();                int lens = -1;                byte by[] = new byte[1024];                while ((lens = stream.read(by)) != -1) {                    arr.write(by, 0, lens);                }                str = new String(arr.toByteArray(), "GBK");            }        } catch (Exception e) {            e.printStackTrace();        }        return str;    }    //轮播图适配器    class Mypager extends PagerAdapter {        @Override        public Object instantiateItem(ViewGroup container, int position) {            ImageView img = new ImageView(getActivity());            ImageLoader.getInstance().displayImage(bean.getData().getComics().get(position % bean.getData().getComics().size()).getCover_image_url(), img);            container.addView(img);            return img;        }        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            container.removeView((View) object);        }        @Override        public int getCount() {            if(bean.getData().getComics()!=null){                return Integer.MAX_VALUE;            }            return 0;        }        @Override        public boolean isViewFromObject(View view, Object object) {            return view == object;        }    }//xlistview    class Mybase extends BaseAdapter{        @Override        public int getCount() {            return bean.getData().getComics().size();        }        @Override        public int getItemViewType(int position) {            if (position%2==0){                return TYPE;            }else{                return TYPE1;            }        }        @Override        public int getViewTypeCount() {            return 2;        }        @Override        public long getItemId(int i) {            return i;        }        @Override        public Object getItem(int i) {            return bean.getData().getComics().get(i);        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            int type=getItemViewType(i);            switch (type){                case TYPE:                    Viewholder holder;                    if (view==null){                        view = LayoutInflater.from(getActivity()).inflate(R.layout.xlist1,viewGroup,false);                        holder = new Viewholder();                        holder.img=view.findViewById(R.id.img1);                        holder.t1=view.findViewById(R.id.t1);                        view.setTag(holder);                    }else{                        holder = (Viewholder) view.getTag();                    }                    holder.t1.setText(bean.getData().getComics().get(i).getTitle());                    ImageLoader.getInstance().displayImage(bean.getData().getComics().get(i).getCover_image_url(),holder.img);                    break;                case TYPE1:                    Viewholders holders;                    if (view==null){                        view=LayoutInflater.from(getActivity()).inflate(R.layout.item2,viewGroup,false);                        holders=new Viewholders();                        holders.t2=view.findViewById(R.id.t2);                        view.setTag(holders);                    }else{                        holders = (Viewholders) view.getTag();                    }                    holders.t2.setText(bean.getData().getComics().get(i).getLabel_text());                    break;            }            return view;        }        class  Viewholder{            ImageView img;            TextView t1;        }        class  Viewholders{            TextView t2;        }    }    //加载    @Override    public void onLoadMore() {        handler.postDelayed(new Runnable() {            @Override            public void run() {                bean.getData().getComics().addAll(bean.getData().getComics());                xlist.deferNotifyDataSetChanged();                xlist.stopLoadMore();                xlist.setRefreshTime("刚刚");            }        },2000);    }    //刷新    @Override    public void onRefresh() {     handler.postDelayed(new Runnable() {        @Override        public void run() {            bean.getData().getComics().addAll(bean.getData().getComics());            xlist.deferNotifyDataSetChanged();            xlist.stopRefresh();            xlist.setRefreshTime("刚刚");        }    },2000);    }}
原创粉丝点击