I had a problem with my ViewPager, I had an OnClickListener
all tabs click on my emulator on my computer, however on my phone its a little weird, only the middle tab clicks, the other 2 don't at all. I even put logs in there and they didn't log anything. Even worse, there is no error, it just doesn't do anything.
Small Part
vpPager.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (vpPager.getCurrentItem() == 0) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 1) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 2) {
zmanimListPopUp();
}
}
});
Please help me!
Thanks!
UPDATES
Large Part
vpPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
prefs.edit().putInt("currentFragmentItem", position).commit();
Log.d("MainActivity", "Position: " + prefs.getInt("currentFragmentItem", 1));
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
vpPager.setCurrentItem(prefs.getInt("currentFragmentItem", 1));
Log.d("MainActivity", "Position on launch: " + prefs.getInt("currentFragmentItem", 1));
DotsIndicator dotsIndicator = (DotsIndicator) findViewById(R.id.dots_indicator);
dotsIndicator.setViewPager(vpPager);
dotsIndicator.setPointsColor(Color.rgb(142, 96, 97));
onClickListener();
}
private void onClickListener() {
vpPager.setOnTouchListener(
new View.OnTouchListener() {
private boolean moved;
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
moved = false;
}
if (motionEvent.getAction() == MotionEvent.ACTION_MOVE) {
moved = true;
}
if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
if (!moved) {
view.performClick();
}
}
return false;
}
}
);
vpPager.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (vpPager.getCurrentItem() == 0) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 1) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 2) {
zmanimListPopUp();
}
}
});
}
Changes Made:
vpPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
// This method will be invoked when a new page becomes selected.
@Override
public void onPageSelected(int position) {
}
// This method will be invoked when the current page is scrolled
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
vpPager.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (vpPager.getCurrentItem() == 0) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 1) {
zmanimListPopUp();
} else if (vpPager.getCurrentItem() == 2) {
zmanimListPopUp();
}
}
});
}
// Called when the scroll state changes:
// SCROLL_STATE_IDLE, SCROLL_STATE_DRAGGING, SCROLL_STATE_SETTLING
@Override
public void onPageScrollStateChanged(int state) {
// Code goes here
}
});