Viewpager onClickListener在android中引用了错误的视图

Viewpager onClickListener在android中引用了错误的视图,android,events,imageview,android-viewpager,fragment,Android,Events,Imageview,Android Viewpager,Fragment,首先,viewpage预加载下一页和上一页。因此,如果我当前查看PageB,它实际上也存储了PageA和PageC视图 这就造成了问题。当我在pageB中时,我按下一个onClickListener,它会得到pageC的位置,而且,我想在pageB中更改一个imageview,但当我按下按钮后,结果是更改了pageC中的imageview 这是代码片段,我扩展了PagerAdapter public class CustomPagerAdapter extends PagerAdapter

首先,viewpage预加载下一页和上一页。因此,如果我当前查看PageB,它实际上也存储了PageA和PageC视图

这就造成了问题。当我在pageB中时,我按下一个onClickListener,它会得到pageC的位置,而且,我想在pageB中更改一个imageview,但当我按下按钮后,结果是更改了pageC中的imageview

这是代码片段,我扩展了PagerAdapter

  public class CustomPagerAdapter extends PagerAdapter {
        private ArrayList<Item> items;
        private LinearLayout rootView;
        private NetworkImageView album;
        private ImageView left;
        private ImageView right;
        private int imagePos;
        private String[] img;
        private WebView mWebView;
        private ImageView i;
        private ImageView i2;
        private WebView fbLikeBtn;
        private WebView sinaLikeBtn;
        private String type;
        private TextView report;
        private TextView id;
        private TextView name;
        private TextView age_brand;
        private TextView gender_model;
        private TextView feature;
        private TextView remarks;
        private TextView location;
        private TextView date;
        private TextView reward;
        private ImageView find;
        private ImageView email;
        private ImageView call;
        private ImageView share;
        private ImageView gps;
        private ImageView play_record;
        private Item item;
        private String isComplete;
        private LinearLayout reward_layout;
        private DownloadManager mgr;
        private boolean isStartPlay;
        private MediaPlayer myPlayer;
        private BroadcastReceiver onComplete;
        private String intent_type_string;
        private String intent_type;
        private String intent_msg;

        public CustomPagerAdapter(ArrayList<Item> items) {
            this.items = items;
        }

        @Override
        public Object instantiateItem(ViewGroup container, final int position) {
            rootView = (LinearLayout) LayoutInflater.from(ctx).inflate(R.layout.item_detail, null);

            item = (Item) items.get(position);

            album = (NetworkImageView) rootView.findViewById(R.id.img);
            left = (ImageView) rootView.findViewById(R.id.left);
            right = (ImageView) rootView.findViewById(R.id.right);
            share = (ImageView) rootView.findViewById(R.id.share);
            find = (ImageView) rootView.findViewById(R.id.find);
            email = (ImageView) rootView.findViewById(R.id.email);
            call = (ImageView) rootView.findViewById(R.id.call);
            gps = (ImageView) rootView.findViewById(R.id.gps);
            report = (TextView) rootView.findViewById(R.id.report);
            id = (TextView) rootView.findViewById(R.id.id);
            name = (TextView) rootView.findViewById(R.id.name);
            age_brand = (TextView) rootView.findViewById(R.id.age_brand);
            gender_model = (TextView) rootView.findViewById(R.id.gender_model);
            feature = (TextView) rootView.findViewById(R.id.feature);
            remarks = (TextView) rootView.findViewById(R.id.remarks);
            location = (TextView) rootView.findViewById(R.id.location);
            date = (TextView) rootView.findViewById(R.id.date);
            reward = (TextView) rootView.findViewById(R.id.reward);
            play_record = (ImageView) rootView.findViewById(R.id.play_record);
            reward_layout = (LinearLayout) rootView.findViewById(R.id.reward_layout);

            name.setText(getResources().getString(R.string.name) + item.name);

            imagePos = 0;

            if (item.image_url != null) {

                img = new String[item.image_url.length];
                for (int i = 0; i < item.image_url.length; i++) {
                    img[i] = item.image_url[i];
                }

                if (img.length == 1) {
                    album.setImageUrl(Constant.request_imageFolder + item.user_id + "/" + item.image_url[0], mImageLoader);
                    left.setVisibility(View.GONE);
                    right.setVisibility(View.GONE);
                } else {
                    album.setImageUrl(Constant.request_imageFolder
                            + item.user_id + "/" + item.image_url[0],
                            mImageLoader);
                    left.setVisibility(View.GONE);
                    left.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            if (imagePos != 0) {
                                imagePos--;
                                right.setVisibility(View.VISIBLE);
                                album.setImageUrl(Constant.request_imageFolder
                                        + item.user_id + "/"
                                        + item.image_url[imagePos],
                                        mImageLoader);
                                if (imagePos == 0)
                                    left.setVisibility(View.GONE);
                            }
                        }
                    });
                    right.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            if (imagePos != item.image_url.length - 1) {
                                imagePos++;
                                left.setVisibility(View.VISIBLE);
                                album.setImageUrl(Constant.request_imageFolder
                                        + item.user_id + "/"
                                        + item.image_url[imagePos],
                                        mImageLoader);
                                if (imagePos == item.image_url.length - 1)
                                    right.setVisibility(View.GONE);
                            }
                        }
                    });
                }
                album.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        item = (Item) items.get(position);
                        Intent intent = new Intent(ctx, Zoom.class);
                        intent.putExtra("photo_list", item.image_url);
                        intent.putExtra("pos", imagePos);
                        intent.putExtra("user_id", item.user_id);
                        startActivity(intent);
                    }
                });
            } else {
                album.setDefaultImageResId(R.drawable.image_null);
                album.setImageResource(R.drawable.image_null);
                left.setVisibility(View.GONE);
                right.setVisibility(View.GONE);
            }

            gps.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    item = (Item) items.get(position);
                    Intent intent = new Intent(ctx, MapSingle.class);
                    intent.putExtra("msg", "ID:" + item.id + " " + intent_type_string + " - " + item.name);
                    intent.putExtra("lat", item.lat);
                    intent.putExtra("lng", item.lng);
                    intent.putExtra("type", intent_type_string);
                    startActivity(intent);
                }
            });

            container.addView(rootView);
            return rootView;
        }

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

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }

        @Override
        public int getCount() {
            return items.size();
        }
    }
public类CustomPagerAdapter扩展了PagerAdapter{
私有ArrayList项;
private LinearLayout rootView;
专用网络图像查看相册;
左视图;
隐私权;
私人int imagePos;
私有字符串[]img;
私有网络视图;
私人影像一;
私有图像视图i2;
私有网络视图fbLikeBtn;
私有网络视图sinaLikeBtn;
私有字符串类型;
私有文本视图报告;
私有文本视图id;
私有文本视图名称;
私人TextView age_品牌;
私有文本视图性别模型;
私有文本视图功能;
私人文本视图评论;
私有文本视图位置;
私有文本查看日期;
私人短信浏览奖励;
私有图像查看查找;
私人图像查看电子邮件;
私人图像查看呼叫;
私有图像视图共享;
私人影像视图gps;
私人影像查看播放记录;
私人物品;
私有字符串已完成;
私人线路布置图;
私人下载经理;
私人游戏;
私人媒体播放器myPlayer;
专用广播接收机未完成;
专用字符串意图\类型\字符串;
私有字符串类型;
私有字符串意图\u msg;
公共CustomPagerAdapter(阵列列表项){
这个项目=项目;
}
@凌驾
公共对象实例化项(视图组容器,最终int位置){
rootView=(LinearLayout)LayoutFlater.from(ctx).充气(R.layout.item_细节,空);
item=(item)items.get(position);
album=(NetworkImageView)rootView.findViewById(R.id.img);
左=(ImageView)rootView.findViewById(R.id.left);
right=(ImageView)rootView.findviewbyd(R.id.right);
share=(ImageView)rootView.findviewbyd(R.id.share);
find=(ImageView)rootView.findviewbyd(R.id.find);
email=(ImageView)rootView.findviewbyd(R.id.email);
call=(ImageView)rootView.findviewbyd(R.id.call);
gps=(ImageView)rootView.findviewbyd(R.id.gps);
report=(TextView)rootView.findViewById(R.id.report);
id=(TextView)rootView.findViewById(R.id.id);
name=(TextView)rootView.findViewById(R.id.name);
age_brand=(TextView)rootView.findViewById(R.id.age_brand);
gender_model=(TextView)rootView.findviewbyd(R.id.gender_model);
feature=(TextView)rootView.findViewById(R.id.feature);
备注=(TextView)rootView.findViewById(R.id.备注);
location=(TextView)rootView.findViewById(R.id.location);
date=(TextView)rootView.findViewById(R.id.date);
奖励=(TextView)rootView.findViewById(R.id.raward);
play_record=(ImageView)rootView.findviewbyd(R.id.play_record);
奖励布局=(LinearLayout)rootView.findviewbyd(R.id.raward\u布局);
name.setText(getResources().getString(R.string.name)+item.name);
imagePos=0;
if(item.image_url!=null){
img=新字符串[item.image_url.length];
对于(int i=0;i