xlistv

来源:互联网 发布:ubuntu查看mysql路径 编辑:程序博客网 时间:2024/06/05 19:51
package com.example.xlistviewlx;


import android.os.Handler;
import android.os.Message;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
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.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


import view.XListView;


public class MainActivity extends AppCompatActivity {
    XListView lv;
    private Handler handler=new Handler(){


        @Override
        public void handleMessage(Message msg) {
            if(msg.what==0){
                JsonRootBean jsonRootBean= (JsonRootBean) msg.obj;
                list = jsonRootBean.getResult().getData();
                Log.i("zzz", list.toString());


                myad = new Myad();
                lv.setAdapter(myad);
                SimpleDateFormat format=new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
                Date shijian=new Date(System.currentTimeMillis());
                String s = format.format(shijian);
                lv.setRefreshTime(s);




            }
        }
    };
    private List<Data> list;
    private Myad myad;
    private ListView lvv;
    private List<String> datas;


    class Myad extends BaseAdapter {
        private final int yi=0;
        private final int er=1;
        private final int san=2;
        @Override
        public int getCount() {
            return list.size();
        }


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


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


        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            Diyi diyi=null;
            Dier dier=null;
            Disan disan=null;
            int type=getItemViewType(i);
            if(view==null){
                switch (type){
                    case yi:
                        view=View.inflate(MainActivity.this,R.layout.diyi,null);
                        diyi=new Diyi();
                        diyi.yitv1=view.findViewById(R.id.yitv1);
                        diyi.yiimg1=view.findViewById(R.id.yiimg1);
                        diyi.yiimg2=view.findViewById(R.id.yiimg2);
                        diyi.yiimg3=view.findViewById(R.id.yiimg3);
                        view.setTag(diyi);
                        break;
                    case er:
                        view=View.inflate(MainActivity.this,R.layout.dier,null);
                        dier=new Dier();
                        dier.ertv1=view.findViewById(R.id.yitv1);
                        dier.erimg1=view.findViewById(R.id.yiimg1);
                        view.setTag(dier);
                        break;
                    case san:
                        view=View.inflate(MainActivity.this,R.layout.disan,null);
                        disan=new Disan();
                        disan.santv1=view.findViewById(R.id.yitv1);
                        disan.sanimg1=view.findViewById(R.id.yiimg1);
                        disan.sanimg2=view.findViewById(R.id.yiimg2);
                        view.setTag(disan);
                        break;
                    default:break;
                }
            }
            switch (type){
                case yi:
                    diyi= (Diyi) view.getTag();
                    diyi.yitv1.setText(list.get(i).getTitle());
                    ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),diyi.yiimg1);
                    ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s02(),diyi.yiimg2);
                    ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s03(),diyi.yiimg3);
                    break;
                case er:
                    dier= (Dier) view.getTag();
                    dier.ertv1.setText(list.get(i).getTitle());
                    ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),dier.erimg1);
                    break;
                case san:
                    disan= (Disan) view.getTag();
                    disan.santv1.setText(list.get(i).getTitle());
                    ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),disan.sanimg1);
                    ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s02(),disan.sanimg2);
                    break;
                default:break;
            }
            return view;
        }


        @Override
        public int getItemViewType(int position) {
            int i=position%3;
            if(i==0){
                return yi;
            }else if(i==1){
                return er;
            }else{
                return san;
            }
        }


        @Override
        public int getViewTypeCount() {
            return 3;
        }
        class Diyi{
            ImageView yiimg1,yiimg2,yiimg3;
            TextView yitv1;
        }
        class Dier{
            ImageView erimg1;
            TextView ertv1;
        }
        class Disan{
            ImageView sanimg1,sanimg2;
            TextView santv1;
        }




    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (XListView) findViewById(R.id.lv);
        lvv = (ListView) findViewById(R.id.listviews);
        datas = new ArrayList<String>();
        for (int a=0;a<10;a++){
            datas.add("新闻"+a+">");
        }
        Myha myha=new Myha();
        lvv.setAdapter(myha);
        lv.setPullRefreshEnable(true);
        lv.setPullLoadEnable(true);
        lv.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        myad.notifyDataSetChanged();
                        lv.stopRefresh();
                    }
                },2000);
            }


            @Override
            public void onLoadMore() {
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        myad.notifyDataSetChanged();
                        lv.stopLoadMore();
                    }
                },2000);
            }
        });
        getdata();
    }


    class Myha extends BaseAdapter{


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


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


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


        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            View v=View.inflate(MainActivity.this,R.layout.item,null);
            TextView tv1 = v.findViewById(R.id.viewtext);
            tv1.setText(datas.get(i));
            return v;
        }
    }
    private void getdata() {
        new Thread(){


            private Message message;


            @Override
            public void run() {
                String path="http://v.juhe.cn/toutiao/index?type=top&key=2f092bd9ce76c0257052d6d3c93c11b4";
                try {
                    URL url=new URL(path);
                    HttpURLConnection con= (HttpURLConnection) url.openConnection();
                    con.setRequestMethod("GET");
                    con.setReadTimeout(5000);
                    con.setConnectTimeout(5000);
                    if(con.getResponseCode()==200){
                        InputStream stream = con.getInputStream();
                        String json=zhuan(stream,"utf-8");
                        Log.i("zzz",json);
                        Gson gson=new Gson();
                        JsonRootBean bean = gson.fromJson(json, JsonRootBean.class);
                        message = Message.obtain();
                        message.what=0;
                        message.obj=bean;
                        handler.sendMessage(message);
                    }
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                super.run();
            }




        }.start();
    }


    private String zhuan(InputStream stream, String s) {
        try {
            InputStreamReader input=new InputStreamReader(stream,s);
            BufferedReader reader=new BufferedReader(input);
            StringBuilder builder=new StringBuilder();
            String ss;
            while((ss=reader.readLine())!=null){
                builder.append(ss);
            }
            return builder.toString();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}
原创粉丝点击