How to best handle fling gesture for Android ListActivity
android, gestures
Solution
Try using AbsListView.pointToPosition() to determine the list item for the X,Y coordinate in your list view.
If you're using the recipe from #937313, you should be able to override `onFling()` more or less as follows:
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
Toast.makeText(listAdapter.getItem( listView.pointToPosition( (int) e1.getX(), (int) e1.getY() ).toString() );
return super.onFling();
} catch( Exception e ) {
// do nothing
}
}
Problem
I have an Android app with a `ListActivity` in the main view. The list contains a `LinearLayout` with a `TextView` and a hidden delete Button. The delete Button will be hidden by default. I want to use a fling gesture to show the button. I am able to detect the fling gesture thanks to question #937313 on stackoverflow. It's not clear to me how to determine which item in the list was flung, since the onTouch listener listens to the `ListView`. The item is not necessarily selected so getSelected* methods can't be used reliably. I am using the `SimpleListAdaptor` so I don't have direct access to the View Objects in the `ListView`. Any ideas?