Java – setonpagechangelistener does not call onpageselected
•
Java
I set up a simpleonpagechangelistener using the following example:
Android SimpleOnPageChangeListener – Determine swipe direction
However, when I execute the code and then slide the viewpager, I want to call the following line:
public void onPageSelected(int position) {
But it never seems to do so - this leads to a non functional viewpager
Any suggestions?
public class Home extends YouTubeBaseActivity implements VideoClickListener { ... private int mCurrentTabPosition = NO_CURRENT_POSITION; private static final int NO_CURRENT_POSITION = -1; private ViewPager mPager; ... int imageArray[]; String[] stringArray; private OnPagechangelistener mPagechangelistener; ImagePagerAdapter adapter = new ImagePagerAdapter(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.home); final ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); viewPager.setAdapter(adapter); ... setOnPagechangelistener(mPagechangelistener); mPagechangelistener = new ViewPager.SimpleOnPagechangelistener() { @Override public void onPageSelected(int position) { onTabChanged(mPager.getAdapter(),mCurrentTabPosition,position); position = mCurrentTabPosition; int oldPos = viewPager.getCurrentItem(); if (position > oldPos) { System.out.print(position); // Moving to the right String playlist = "TheMozARTGROUP"; new GetYouTubeUserVideosTask(responseHandler,playlist) .execute(); View vg = findViewById(R.layout.home); vg.invalidate(); } else if (position < oldPos) { // Moving to the Left System.out.print(position); String playlist = "TheMozARTGROUP"; new GetYouTubeUserVideosTask(responseHandler,playlist) .execute(); View vg = findViewById(R.layout.home); vg.invalidate(); } viewPager.setOnPagechangelistener(mPagechangelistener); } private void onTabChanged(PagerAdapter adapter,int mCurrentTabPosition,int position) { // TODO Auto-generated method stub } }; } private void setOnPagechangelistener( OnPagechangelistener mPagechangelistener2) { // TODO Auto-generated method stub } ... private class ImagePagerAdapter extends PagerAdapter { public ImagePagerAdapter(Activity act,int[] mImages,String[] stringArra) { imageArray = mImages; activity = act; stringArray = stringArra; } public ImagePagerAdapter() { super(); } private int[] mImages = new int[] { R.drawable.selstation_up_btn,R.drawable.classical_up_btn,R.drawable.country_up_btn,R.drawable.dance_up_btn,R.drawable.hiphop_up_btn,R.drawable.island_up_btn,R.drawable.latin_up_btn,R.drawable.pop_up_btn,R.drawable.samba_up_btn }; private String[] stringArray = new String[] { "vevo","TheMozARTGROUP","TimMcGrawVEVO","TiestoVEVO","EminemVEVO" }; @Override public int getCount() { return mImages.length; } @Override public boolean isViewFromObject(View view,Object object) { return view == ((ImageView) object); } @Override public Object instantiateItem(ViewGroup container,int position) { Context context = Home.this; ImageView imageView = new ImageView(context); imageView.setScaleType(ScaleType.FIT_XY); imageView.setImageResource(mImages[position]); ((ViewPager) container).addView(imageView,0); return imageView; } @Override public void destroyItem(ViewGroup container,int position,Object object) { ((ViewPager) container).removeView((ImageView) object); } protected void onTabChanged(final PagerAdapter adapter,final int oldPosition,final int newPosition) { // Calc if swipe was left to right,or right to left if (oldPosition > newPosition) { // left to right } else { // right to left } final ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); } } }
XML:
<android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="wrap_content" android:layout_height="fill_parent" />
Solution
use
viewPager.setOnPagechangelistener(mPagechangelistener);
Remove
private void setOnPagechangelistener( OnPagechangelistener mPagechangelistener2) { // TODO Auto-generated method stub }
and
setOnPagechangelistener(mPagechangelistener);
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码