viewpager轮播图的adapter

引用了一小部分其他人的

package com.daniujuntuan.android.adapter;

import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.ImageView;

import com.daniujuntuan.android.AppCommon;
import com.daniujuntuan.android.activity.common.WebViewShowActivity;
import com.daniujuntuan.android.dto.app_home_page.AppHomePageDataCarouselListDto;
import com.daniujuntuan.android.utils.ActivityUtils;
import com.daniujuntuan.android.view.MyDialog;

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

/**
 * Created by Administrator on 2015/12/24 0024.
 */
public class ViewPagerShowAdapter extends PagerAdapter {
    private Context context;
    public ViewPagerShowAdapter(Context context){
        this.context=context;
    }
    private List<ImageView> list = new ArrayList<ImageView>();
    List<AppHomePageDataCarouselListDto> carouselLis = new ArrayList<AppHomePageDataCarouselListDto>();
    private boolean noClick=false;
    private boolean clickAppHomePageJump=false;


    public ViewPagerShowAdapter(List<ImageView> list,Context context) {
        this.list = list;
        this.context=context;
    }

    public ViewPagerShowAdapter(Context context,List<ImageView> list,List<AppHomePageDataCarouselListDto> carouselLis) {
        this.list = list;
        this.carouselLis=carouselLis;
        this.context=context;
        clickAppHomePageJump = true;//用来标识是否是首页点击跳转
    }

    @Override
    public int getCount() {
        if(list!=null&&list.size()<3){
            return list.size();
        }
        return list!=null?list.size()==1?1:Integer.MAX_VALUE/100:0;//先判断list是否为空,在判断list的大小是否为1
    }
//    list!=null?list.size():0;//
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
//        int posi = position%list.size();
//        container.removeView(list.get(posi));
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        //对ViewPager页号求模取出View列表中要显示的项
        position %= list.size();
        if (position<0){
            position = list.size()+position;
        }
        ImageView view = list.get(position);
        //如果View已经在之前添加到了一个父组件,则必须先remove,否则会抛出IllegalStateException。
        ViewParent vp =view.getParent();
        if (vp!=null){
            ViewGroup parent = (ViewGroup)vp;
            parent.removeView(view);
        }
        container.addView(view);
        //add listeners here if necessary

        if(!clickAppHomePageJump&&!noClick) {
            final int finalPosition = position;
            list.get(finalPosition).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    MyDialog myDialog = MyDialog.createViewPagerBigPhotoDialog(list, context);
                    myDialog.setViewPagerBigPhotoPosi(finalPosition);
                    myDialog.show();
                    myDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
                        @Override
                        public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                            dialog.dismiss();
                            return false;
                        }
                    });
                }
            });
        }
        if(clickAppHomePageJump){
            final int finalPosition1 = position;
            list.get(finalPosition1).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(carouselLis.get(finalPosition1).getWebUrl()!=null||!carouselLis.get(finalPosition1).getWebUrl().isEmpty()||!"".equals(carouselLis.get(finalPosition1).getWebUrl())) {
                        Bundle bundle = new Bundle();
                        bundle.putString(AppCommon.WEBVIEW_URL, carouselLis.get(finalPosition1).getWebUrl());
                        bundle.putString(AppCommon.WEBVIEW_TITLT,carouselLis.get(finalPosition1).getTitle());
                        bundle.putString(AppCommon.PAGE_TYPE, AppCommon.PAGE_TYPE_HOME_PAGE_FRAGMENT);
                        ActivityUtils.jump(context, WebViewShowActivity.class, bundle);
                    }
                }
            });
        }

        return view;


//        final int posi = position%list.size();
//        container.addView(list.get(posi));
//        if(!clickAppHomePageJump&&!noClick) {
//            list.get(posi).setOnClickListener(new View.OnClickListener() {
//                @Override
//                public void onClick(View v) {
//
//                    MyDialog myDialog = MyDialog.createViewPagerBigPhotoDialog(list, context);
//                    myDialog.setViewPagerBigPhotoPosi(posi);
//                    myDialog.show();
//                    myDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
//                        @Override
//                        public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
//                            dialog.dismiss();
//                            return false;
//                        }
//                    });
//                }
//            });
//        }
//        if(clickAppHomePageJump){
//            list.get(posi).setOnClickListener(new View.OnClickListener() {
//                @Override
//                public void onClick(View v) {
//                    if(carouselLis.get(posi).getWebUrl()!=null||!carouselLis.get(posi).getWebUrl().isEmpty()||!"".equals(carouselLis.get(posi).getWebUrl())) {
//                        Bundle bundle = new Bundle();
//                        bundle.putString(AppCommon.WEBVIEW_URL, carouselLis.get(posi).getWebUrl());
//                        bundle.putString(AppCommon.WEBVIEW_TITLT,carouselLis.get(posi).getTitle());
//                        bundle.putString(AppCommon.PAGE_TYPE, AppCommon.PAGE_TYPE_HOME_PAGE_FRAGMENT);
//                        ActivityUtils.jump(context, WebViewShowActivity.class,bundle);
//                    }
//                }
//            });
//        }
//        return list.get(posi);
    }


    public  void setNoClick(){
        noClick = true;
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值