I have a onClickListener
on a textview
and the textview has the flag that it's selectable
.
But the onclick
event I specified is only called when the textview
is clicked a second time.
After the second time it calles the onclick right, but if a other textview
that also is selectable
with a onclicklistener
it also is only called the second time, then it works fine, but then the other one works only the second time again. I can't find the source of this weird events.
telefoonTXT.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {startTelIntent();}}
);
urlTXT.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {startWebIntent();}
});
I faced this issue as well. Whenever text view is touched firstly onTouch
, then OnSelection
and at last OnClick
is called.
If i understand your problem clearly you want to select text in text view when user double taps
or long presses
like the usual text selection but when user simply clicks it once u want the onClick
to function. I think the following might help you.
Add a gestureDetector
to your text View.
GestureDetectorCompat mDetector;
mDetector = new GestureDetectorCompat(this, new GestureDetector.SimpleOnGestureListener());
mDetector.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() {
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
// This is where u add your OnClick event
startTelIntent();
return false;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
Log.d("dtttt", "double tap");
return false;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
return false;
}
});
telefoonTXT.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
mDetector.onTouchEvent(event);
return false;
}
});
set this ...
TextisSelectable = "false"
i think it will be work correctly