Is it possible to use dragging events and click event on the same Textview?
android, events, listener, onclick, ontouch
Solution
Use setOnTouchListener and setOnClickListener simultaneously
in onTouch:
public boolean onTouch(View v, MotionEvent event) {
ViewParent parent = v.getParent();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
disallowTouch(parent, true);
downX = event.getX();
downY = event.getY();
return false; // allow other events like Click to be processed
}
}
private void disallowTouch(ViewParent parent, boolean isDisallow) {
if (parent != null) {
parent.requestDisallowInterceptTouchEvent(isDisallow);
}
}
Problem
In my application I got a requirement to use both click and drag events on the same textView. I have written the following code: ``` ... } switch(event.getAction()) { case MotionEvent.ACTION_UP: // TextDialog.setVisibility(View.VISIBLE); break; case MotionEvent.ACTION_DOWN: { disallowTouch(parent, true); int downX = (int)event.getX(); int downY = (int)event.getY(); return false; // allow other events like Click to be processed } case MotionEvent.ACTION_MOVE: int x = (int)event.getRawX(); int y= (int)event.getRawY(); layoutParams.leftMargin = x - 50; layoutParams.topMargin = y - 70; tvText.setLayoutParams(layoutParams); break; default: break; } return true; } @Override public void onClick(View v) { // TODO Auto-generated method stub TextDialog.setVisibility(View.VISIBLE); } ``` But only `ACTION_MOVE` is working. The `onClick` event is not getting fired. I just want to display a dialog when clicking on the TextView. How can I achieve this?