binner

package com.bwie.zhaozenghui20181015.adapter;

import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.bwie.zhaozenghui20181015.R;
import com.bwie.zhaozenghui20181015.model.MyInageLoader;
import com.bwie.zhaozenghui20181015.model.MyJsonDataBean;
import com.bwie.zhaozenghui20181015.model.MyjsonImage;
import com.bwie.zhaozenghui20181015.ui.MainActivity;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList;
import java.util.List;

public class MyAdapter extends BaseAdapter {

    LayoutInflater layoutInflater;
    Context context;
    List<MyJsonDataBean.ResultBean> list;
    List<MyjsonImage.DataBean> listImage;
    private viewHodlerImage vhiamge;

    public void setData(List<MyJsonDataBean.ResultBean> data) {
        this.list.clear();
        this.list.addAll(data);
        notifyDataSetChanged();
    }

    public void addData(List<MyJsonDataBean.ResultBean> resultBeans) {
        if (resultBeans != null) {
            this.list.addAll(resultBeans);
            notifyDataSetChanged();
        }
    }

    public MyAdapter(LayoutInflater layoutInflater, Context context) {
        this.layoutInflater = layoutInflater;
        this.list = new ArrayList<>();
        this.listImage = new ArrayList<>();
        this.context = context;
    }

    public boolean  hasImage(){
        return listImage.size() > 0 ;
    }

    public void setAddImage(List<MyjsonImage.DataBean> addImage) {
        this.listImage = addImage;
        notifyDataSetChanged();
    }

    @Override
    public int getItemViewType(int position) {
      return  hasImage() && position == 0 ? 0 : 1;
    }

    @Override
     public int getViewTypeCount() {
        return super.getViewTypeCount() + 1;
    }

    @Override
    public int getCount() {
        return list.size() + ( hasImage() ? 1:0 );

    }

    @Override
    public Object getItem(int position) {

        return list.get( hasImage() ? position -1 : position);
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        viewHodler vh;
      if (getItemViewType(position) == 0){

          if (convertView == null) {
              convertView = layoutInflater.inflate(R.layout.listdatatwp, parent, false);
              vhiamge = new viewHodlerImage(convertView);
          } else {
              vhiamge = (viewHodlerImage) convertView.getTag();
          }

          vhiamge.viewPagers.setAdapter(new MyPageAdapter(listImage,context));
          startPolling();

      }else{


          if (convertView == null) {
              convertView = layoutInflater.inflate(R.layout.listdata, parent, false);
              vh = new viewHodler(convertView);
          } else {
              vh = (viewHodler) convertView.getTag();
          }

          MyJsonDataBean.ResultBean resultBean  = (MyJsonDataBean.ResultBean) getItem(position);
          // 这是错误的: MyJsonDataBean.ResultBean resultBean = list.get(position);
          //这里必须调用getItem 如果调用数据的list的话就会报数组越界

          vh.BindData(resultBean);
      }




        return convertView;
    }


    class viewHodler {
        TextView textView1;
        TextView textView2;
        ImageView imageView;

        public viewHodler(View convertView) {
            textView1 = convertView.findViewById(R.id.Text_name);
            textView2 = convertView.findViewById(R.id.Text_date);
            imageView = convertView.findViewById(R.id.imageView);
            convertView.setTag(this);
        }

        public void BindData(MyJsonDataBean.ResultBean resultBean) {
            textView1.setText(resultBean.getName());
            textView2.setText(resultBean.getSummary());
            ImageLoader.getInstance().displayImage(resultBean.getImageUrl(), imageView, MyInageLoader.getDisplayImageOptions(context));
        }
    }

    class viewHodlerImage {
        ViewPager viewPagers;

        public viewHodlerImage(View convertView) {
            this.viewPagers = convertView.findViewById(R.id.viewPager);
            convertView.setTag(this);
        }


    }

    Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
                switch (msg.what){
                    case 0:
                        int nextItem =  vhiamge.viewPagers.getCurrentItem();
                        nextItem++;
                        vhiamge.viewPagers.setCurrentItem(nextItem);
                        handler.removeMessages(0);//设置message
                        handler.sendEmptyMessageDelayed(0,2000);
                        break;
                }
        }
    };


    private void startPolling() {
        //必須先清除messsage 然后在设置
        handler.removeMessages(0);
        handler.sendEmptyMessageDelayed(0,2000);
    }

}
package com.bwie.zhaozenghui20181015.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.bwie.zhaozenghui20181015.model.MyjsonImage;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

public class MyPageAdapter extends PagerAdapter{
    List<MyjsonImage.DataBean> list;
    Context context;

    public MyPageAdapter(List<MyjsonImage.DataBean> listImage, Context context) {
        this.context = context;
        this.list = listImage ;
    }

    @Override
    public int getCount() {

        return list.size() > 0 ? Integer.MAX_VALUE : 0;
    }

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

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {

        ImageView imageView = new ImageView(context);
        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
        ImageLoader.getInstance().displayImage(list.get(position % list.size()).getIcon(),imageView);
        container.addView(imageView);
        return  imageView;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {

        container.removeView((View) object);
    }




}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值