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?

Original source