I am in a tricky situation, hope you can help me with it. I have few views (TextViews), horizontally placed one after another in a linear layout. When I press on textview1, drag my finger to any other textview and release touch, I want to be able to get the view(textview) on which the finger was lifted.
I went over the TouchListener api, it says that every event starts with a ACTION_DOWN event action. Since other textviews won't fire that event, how can I get the reference to the textViews on which I lifted my finger? I tried it even, and the action_up would fire only on the textView that fired the action_down event.
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_UP:
Log.i(TAG, "ACTION_UP");
Log.i(TAG, ((TextView) v).getText().toString());
break;
case MotionEvent.ACTION_DOWN:
Log.i(TAG, "ACTION_DOWN");
Log.i(TAG, ((TextView)v).getText().toString());
break;
}
return true;
}
Any help is greatly appreciated. Thank you
You need to handle all your touch events in the LinearLayout and check the location of the child views (child.getLeft() and child.getRight()).