I'm trying to get the list item number in the onTouch method. That is how i do it:
ListView myList;
...
myList.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
doSomething(myList, event);
return false;
}
});
...
private void doSomething(ListView myList, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
int first = myList.getFirstVisiblePosition();
int last = myList.getLastVisiblePosition();
int itemHeight = myList.getHeight() / (last - first + 1) + myList.getDividerHeight();
int position = (int)event.getY() / itemHeight;
View child = myList.getChildAt(position);
...
It seems to be not correct, because sometimes I get wrong position. How can i fix it?