MainActivity.java(zhou3)

来源:互联网 发布:matlab之父编程实践 编辑:程序博客网 时间:2024/06/03 22:41
package com.example.disanzhoua3;


import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
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.limxing.xlistview.view.XListView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;


import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.List;


import static android.R.attr.start;


public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {




    private XListView listView;
    private int indexp = 0;
    private boolean flag;
    private String count;
    private String start;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (XListView) findViewById(R.id.listview);
        listView.setPullLoadEnable(true);
        listView.setXListViewListener(this);


        try {


            getDates("https://api.douban.com/v2/movie/in_theaters?apikey=0b2bdeda43b5688921839c8ecb20399b&city=" + URLEncoder.encode("北京", "utf-8") + "&start=" + start + "&count=" + count, indexp + "", 100 + "");
        } catch (Exception e) {
            e.printStackTrace();
        }




    }


    //    , String start, String count
    public void getDates(String path, String start, String count) {


        new AsyncTask<String, Void, String>() {


            private Myadapter myadapter;
            private String count;
            private String start;


            @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.SubjectsBean> list = menuInfo.getSubjects();
//                    listView.setAdapter(new Myadapter(list));




                    if (myadapter == null) {


                        myadapter = new Myadapter(list);
                        listView.setAdapter(new Myadapter(list));
                    } else {
                        myadapter.LoadMore(list, flag);
                        myadapter.notifyDataSetChanged();


                    }




                }




            }


            @Override
            protected String doInBackground(String... params) {
                try {
                    String path = params[0];
                    start = params[1];
                    count = params[2];
                    URL url = new URL(path);
                    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                    urlConnection.setRequestMethod("GET");
                    urlConnection.setConnectTimeout(5000);
                    urlConnection.setReadTimeout(5000);
//                    OutputStream outputStream = urlConnection.getOutputStream();
//                    outputStream.write(("apikey=0b2bdeda43b5688921839c8ecb20399b&city=" + URLEncoder.encode("北京", "utf-8")).getBytes());
//                    outputStream.flush();
//                    "&start=" + start + "&count=" + count


                    int code = urlConnection.getResponseCode();
                    if (code == 200) {
                        InputStream is = urlConnection.getInputStream();
                        String json = StreamTook.read(is);
                        return json;
                    }




                } catch (Exception e) {
                    e.printStackTrace();
                }




                return null;
            }
        }.execute(path, start, count);




    }


    @Override
    public void onRefresh() {
        try {
            ++indexp;
//            getDates("https://api.douban.com/v2/movie/in_theaters?", indexp + "", 10 + "");
//            getDates("https://api.douban.com/v2/movie/in_theaters?");
//            getDates("https://api.douban.com/v2/movie/in_theaters?apikey=0b2bdeda43b5688921839c8ecb20399b&city=" + URLEncoder.encode("北京", "utf-8"));
//            getDates("https://api.douban.com/v2/movie/in_theaters?apikey=0b2bdeda43b5688921839c8ecb20399b&start=0&count=10&city=" + URLEncoder.encode("北京", "utf-8"));
//            getDates("https://api.douban.com/v2/movie/in_theaters?apikey=0b2bdeda43b5688921839c8ecb20399b&start=0&count=10&city=" + URLEncoder.encode("北京", "utf-8"),indexp+"",10+"");
            getDates("https://api.douban.com/v2/movie/in_theaters?apikey=0b2bdeda43b5688921839c8ecb20399b&city=" + URLEncoder.encode("北京", "utf-8") + "&start=" + start + "&count=" + count, indexp + "", 100 + "");


            flag = true;


            listView.stopRefresh(true);
        } catch (Exception e) {
            e.printStackTrace();
        }




    }


    @Override
    public void onLoadMore() {
        try {
            ++indexp;
//        getDates("https://api.douban.com/v2/movie/in_theaters?");
//            getDates("https://api.douban.com/v2/movie/in_theaters?apikey=0b2bdeda43b5688921839c8ecb20399b&city=" + URLEncoder.encode("北京", "utf-8"), indexp + "", 10 + "");
//            getDates("https://api.douban.com/v2/movie/in_theaters?apikey=0b2bdeda43b5688921839c8ecb20399b&city=" + URLEncoder.encode("北京", "utf-8"));
//            getDates("https://api.douban.com/v2/movie/in_theaters?apikey=0b2bdeda43b5688921839c8ecb20399b&start=0&count=10&city=" + URLEncoder.encode("北京", "utf-8"));
//            getDates("https://api.douban.com/v2/movie/in_theaters?apikey=0b2bdeda43b5688921839c8ecb20399b&start=0&count=10&city=" + URLEncoder.encode("北京", "utf-8"),indexp+"",10+"");
            getDates("https://api.douban.com/v2/movie/in_theaters?apikey=0b2bdeda43b5688921839c8ecb20399b&city=" + URLEncoder.encode("北京", "utf-8") + "&start=" + start + "&count=" + count, indexp + "", 100 + "");


            flag = false;
            listView.stopLoadMore();
        } catch (Exception e) {
            e.printStackTrace();
        }


    }


    class Myadapter extends BaseAdapter {


        List<MenuInfo.SubjectsBean> list;


        public Myadapter(List<MenuInfo.SubjectsBean> list) {


            this.list = list;


        }


        public void LoadMore(List<MenuInfo.SubjectsBean> list1, boolean flag) {


            for (MenuInfo.SubjectsBean beans : list) {


                if (flag) {


                    list.add(0, beans);


                } else {
                    list.add(beans);
                }




            }




        }




        @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 int getItemViewType(int position) {


            if (position % 2 == 0) {


                return 0;//偶数


            } else {
                return 1;//奇数


            }




        }


        @Override
        public int getViewTypeCount() {
            return 2;




        }


        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            int type = getItemViewType(position);
            switch (type) {
                case 0: {


                    if (convertView == null) {
                        convertView = convertView.inflate(MainActivity.this, R.layout.item2, null);
                    }
                     ImageView image1 = (ImageView) convertView.findViewById(R.id.image1);
                    ImageView image2 = (ImageView) convertView.findViewById(R.id.image2);
                    ImageView image3 = (ImageView) convertView.findViewById(R.id.image3);
                    getImage(list.get(position).getCasts().get(0).getAvatars().getLarge(),image1);
                    getImage(list.get(position).getCasts().get(0).getAvatars().getMedium(),image2);
                    getImage(list.get(position).getCasts().get(0).getAvatars().getSmall(),image3);
                }


                break;


                case 1: {


                    if (convertView == null) {
                        convertView = convertView.inflate(MainActivity.this, R.layout.item1, null);
                    }
                    TextView textView1 = (TextView) convertView.findViewById(R.id.text);
                    textView1.setText(list.get(position).getTitle() + "\n" + list.get(position).getOriginal_title());
                }
                break;
            }




            return convertView;
        }
    }


    private void getImage(String path, ImageView image) {
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)
                .cacheOnDisk(true)
                .showImageOnLoading(R.mipmap.ic_empty)
                .showImageOnFail(R.mipmap.ic_error)
                .build();
        ImageLoader.getInstance().displayImage(path, image, options);
    }




}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 毛风衣叠久了怎么办 黑色的衣服沾毛怎么办 雪纺裙子弄上油怎么办 内衣买小了怎么办妙招 长裤衬衫裙邹了怎么办 100棉衬衣皱了怎么办? 短袖t恤袖口大了怎么办 短袖底下卷边了怎么办 棉质短袖衫缩水怎么办 纯棉t恤缩水了怎么办 t恤缩水变小了怎么办 衣服掉在雨棚上怎么办 车衣密码锁忘记密码怎么办 衣服的铁拉链弯怎么办 去旅行衣服皱了怎么办 衣服抽绳出来了怎么办 裤子的绑带掉了怎么办 网纱裙的边卷了怎么办 堵奶宝宝吸不通怎么办 棉麻裙子掉毛怎么办 10个月宝宝吃手怎么办 婴儿连体衣长了怎么办 冰丝面料变长了怎么办 t恤袖口大了怎么办 长袖t恤袖子长了怎么办 机打的扣子掉了怎么办 四个月宝宝头扁怎么办 鞋子前面穿翘了怎么办 休完产假没人带怎么办 休完产假孩子吃奶怎么办 巴布豆童鞋里面臭了到底怎么办 连体裤有点卡档怎么办 宝宝连体衣扣子掉了怎么办 买衣服被骂了怎么办? 把人车刮了跑了怎么办 打工打不下去了怎么办 白色衣服变粉了怎么办 一量血压就紧张怎么办 一紧张就血压高怎么办 不在上班时间在单位受伤怎么办 生活过得太压抑怎么办