微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Android中的Clickable View Pager

我想在我的View Pager中设置click事件.我的ViewPagerAdapter看起来像这样 –

public class ViewPagerAdapder extends PagerAdapter {

    Activity activity;
    String image[];

    public ViewPagerAdapder(Activity act,String[] imgArra) {
        image = imgArra;
        activity = act;
    }

    public int getCount() {
        return image.length;
    }

    public Object instantiateItem(View collection,final int position) {
        ImageView view = new ImageView(activity);

        view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));
        new ImageDownloaderTask(view).execute(image[position]);
        view.setScaleType(ImageView.ScaleType.CENTER_CROP);
        view.setAdjustViewBounds(true);
        ((ViewPager) collection).addView(view,0);

    //  view.setBackgroundResource(imageArray[position]);

        return view;
    }

    @Override
    public void destroyItem(View arg0,int arg1,Object arg2) {
        ((ViewPager) arg0).removeView((View) arg2);
    }

    @Override
    public boolean isViewFromObject(View arg0,Object arg1) {
        return arg0 == ((View) arg1);
    }

    @Override
    public Parcelable saveState() {
        return null;
    }
}

我在我的主要活动中设置了OnClickListener

 myPager = (ViewPager) view.findViewById(R.id.viewpager);

        myPager.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getActivity(),"Ckecking Success",Toast.LENGTH_SHORT).show();
            }
}

我的ViewPager工作正常.我试图在Main Activity和ViewPagerAdapter类中实现OnClickListener.它无论如何都无效.

最佳答案
使用此类进行查看分页器单击.

ClickableViewPager.java

public class ClickableViewPager extends ViewPager {
    private OnItemClickListener mOnItemClickListener;

    public ClickableViewPager(Context context) {
        super(context);
        setup();
    }

    public ClickableViewPager(Context context,AttributeSet attrs) {
        super(context,attrs);
        setup();
    }

    private void setup() {
        final GestureDetector tapGestureDetector = new    GestureDetector(getContext(),new TapGestureListener());

        setonTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v,MotionEvent event) {
                tapGestureDetector.onTouchEvent(event);
                return false;
            }
        });
    }

    public void setonItemClickListener(OnItemClickListener onItemClickListener) {
        mOnItemClickListener = onItemClickListener;
    }

    public interface OnItemClickListener {
        void onItemClick(int position);
    }

    private class TapGestureListener extends GestureDetector.SimpleOnGestureListener {

        @Override
        public boolean onSingleTapConfirmed(MotionEvent e) {
            if(mOnItemClickListener != null) {
                mOnItemClickListener.onItemClick(getCurrentItem());
            }
            return true;
        }
    }
}

点击活动

clickablePager.setonItemClickListener(new ClickableViewPager.OnItemClickListener() {
            @Override
            public void onItemClick(int position) {
    }
 });

原文地址:https://www.jb51.cc/android/429978.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐