我想在我的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 举报,一经查实,本站将立刻删除。