I'm having some trouble with my litView
inside my viewFlipper
.
// GestureDetector
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// Right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
IconManager.INSTANCE.leftSwipe();
vf.setInAnimation(slideLeftIn);
vf.setOutAnimation(slideLeftOut);
vf.showNext();
System.out.println("SWIIINGG!!");
// Left to right swipe
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
IconManager.INSTANCE.rightSwipe();
vf.setInAnimation(slideRightIn);
vf.setOutAnimation(slideRightOut);
vf.showPrevious();
}
} catch (Exception e) {
// nothing
}
return false;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
Log.e("Item Click","Item Click");
Intent intentAgenda = new Intent (Activity_Main.this, AgendaSelected.class);
//intentAgenda.putExtra("LECTURE_NAME", homeAgendaListAdapter.getItemId(3));
startActivity(intentAgenda);
return super.onSingleTapConfirmed(e);
}
}
This code enables me to flip among the views in the flipper and scroll in the lists within the different flips. However, this makes my entire app clickable. Even if I singleTap
on a blank surface, it registers a click, and sends me to where the Intent intentAgenda = new Intent
wants to send me. This should only happen when I tap on an item within the listView
!
What can I do to get the listener on the specific lists to only listen "on the lists" and not the entire app? I believe that the problem lies within the public boolean onSingleTapConfirmed
, but I can't see it.
I have not tried the above but one solution that actually work is to create a new OnItemClickListener and then setOnItemClickListener(your item click listener) on your lists. That would be to not use single tap in your case but just create a new on itemclick listener like this but more stylish:
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Intent intentAgenda = new Intent (Activity_Main.this, AgendaSelected.class);
// // intentAgenda.putExtra("LECTURE_NAME", homeAgendaListAdapter.getItemId(3));
startActivity(intentAgenda);
}
});
If you want to create more lists you can create a new item click listener and just point every list to it.