輪播 多條目加載

private ViewPager viewPager;
private XListView xListView;
private boolean flag;
private int index=0;
private static final int TYPE_0 = 0;
private static final int TYPE_1 = 1;
private String a = "http://tnfs.tngou.net/image/info/150912/6f1f81106d337d769882e34f481cc191.jpg";
private String b = "http://tnfs.tngou.net/image/info/150912/2214b610bf24022d8d79eb6e616754fb.jpg";
private String c = "http://tnfs.tngou.net/image/info/150820/4894d9f79ee1f112e46fbbb35047b714.jpg";
private String arr[] = {a,b,c};
private Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        int currentItem = viewPager.getCurrentItem();
        if (currentItem<base.getCount()-1){

            currentItem++;
        }else {
            currentItem=0;
        }
        viewPager.setCurrentItem(currentItem);
        handler.sendEmptyMessageDelayed(0,3000);
        super.handleMessage(msg);

    }
};
private MyBase1 base;
private InfoBean infoBean;
private MyBase2 base2;
private List<InfoBean.ResultBean> list;
private ImageView imageview;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);
    viewPager = (ViewPager) findViewById(R.id.VP);
    xListView = (XListView) findViewById(R.id.XLV);
    xListView.setPullLoadEnable(true);
    xListView.setXListViewListener(this);
    base = new MyBase1();
    viewPager.setAdapter(base);
    data("http://apis.juhe.cn/catering/querybycity?key=25288cbd70dd6611b564156a994cd23a&city=北京",index+"",10+"");
    handler.sendEmptyMessageDelayed(0,3000);
}

class MyBase1 extends PagerAdapter{


    @Override
    public int getCount() {
        return arr.length;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView image = new ImageView(MainActivity.this);
        container.addView(image);
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)
                .cacheOnDisk(true)
                .build();
        ImageLoader.getInstance().displayImage(arr[position],image,options);
        return image;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }
}
public void data(final String path, String page, String pagesize){
    new AsyncTask<String, Void, String>() {
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            if(s!=null){
                Gson gson = new Gson();
                infoBean = gson.fromJson(s, InfoBean.class);

// list = infoBean.getResult();
if(infoBean.getResult() == null)
{
Toast.makeText(MainActivity.this, infoBean.getReason(), Toast.LENGTH_SHORT).show();
return;
}else {
list = infoBean.getResult();
}

                if (base2==null){
                    base2 = new MyBase2(list);
                    xListView.setAdapter(base2);
                }else {
                    base2.Imageloader1(list,flag);
                    base2.notifyDataSetChanged();
                }
            }
        }

        @Override
        protected String doInBackground(String... params) {
            try {
                String path = params[0];
                String pn = params[1];
                String rn = params[2];
                URL url = new URL(path);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("GET");
                connection.setConnectTimeout(5000);
                connection.setReadTimeout(5000);

                int code = connection.getResponseCode();
                if (code==HttpURLConnection.HTTP_OK) {
                    InputStream is = connection.getInputStream();
                    String json = InfoUtils.json(is);
                    return json;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    }.execute(path,page,pagesize);
}

@Override
public void onRefresh() {
    ++index;
    data("http://apis.juhe.cn/catering/querybycity?key=25288cbd70dd6611b564156a994cd23a&city=北京",index+"",10+"");
    flag=true;
    xListView.stopRefresh(true);

}

@Override
public void onLoadMore() {
    ++index;
    data("http://apis.juhe.cn/catering/querybycity?key=25288cbd70dd6611b564156a994cd23a&city=北京",index+"",10+"");
    flag=false;
    xListView.stopLoadMore();
}

class MyBase2 extends BaseAdapter{

    private List<InfoBean.ResultBean> list;

    public MyBase2(List<InfoBean.ResultBean> list) {            this.list = list;
    }
    public void Imageloader1(List<InfoBean.ResultBean> list1, boolean flag){

        for (InfoBean.ResultBean step: list1) {
            if (flag) {
                list.add(0, step);
            }else {
                list.add(step);
            }
        }
    }
    @Override
    public int getCount() {
        return list!=null?list.size():0;
    }

    @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 TYPE_0;
        }else {
            return TYPE_1;
        }
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        int type = getItemViewType(position);
        switch (type){
            case 1:
                convertView = convertView.inflate(MainActivity.this,R.layout.item,null);
                imageview = (ImageView) convertView.findViewById(R.id.IV);
                TextView textview = (TextView) convertView.findViewById(R.id.TV);
                textview.setText(list.get(position).getTags());
                imageview.setTag(list.get(position).getPhotos());
                imageview(list.get(position).getPhotos(),imageview);
                imageview.setImageResource(R.mipmap.ic_launcher);

                break;
            case 0:
                convertView = convertView.inflate(MainActivity.this,R.layout.item1,null);
                imageview = (ImageView) convertView.findViewById(R.id.IV1);
                TextView textview1 = (TextView) convertView.findViewById(R.id.TV1);
                textview1.setText(list.get(position).getTags());
                imageview.setTag(list.get(position).getPhotos());
                imageview(list.get(position).getPhotos(),imageview);
                imageview.setImageResource(R.mipmap.ic_launcher);
                break;
        }

        return convertView;
    }

}
public void imageview(String path,ImageView image){
    new AsyncTask<String, Void, Bitmap>() {
        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);
            if (bitmap!=null){
                imageview.setImageBitmap(bitmap);
            }else {
                imageview.setImageResource(R.mipmap.ic_launcher);
            }
        }

        @Override
        protected Bitmap doInBackground(String... params) {
            try {
                String path = params[0];
                URL url = new URL(path);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("GET");
                connection.setConnectTimeout(5000);
                connection.setReadTimeout(5000);

                int code = connection.getResponseCode();
                if (code==HttpURLConnection.HTTP_OK){

                    InputStream is = connection.getInputStream();
                    return BitmapFactory.decodeStream(is);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    }.execute(path);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    try {
        File file = new File(Environment.getExternalStorageDirectory(),"listview.txt");
        FileOutputStream outputStream = new FileOutputStream(file);
        outputStream.write(list.toString().getBytes());
        outputStream.close();

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

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章