TextView上的onclick事件(TextIsSelectable =“true”)是ony调用第二次点击

我有一个textview和TextView的标志,它是selectable 。 但是我指定的onclick事件仅在第二次点击textview时调用。 第二次调用onclick的权利,但如果其他onclicklistenerselectableonclicklistener selectable它也只是第二次调用,那么它工作正常,但另一个只有第二次再次工作。 我无法find这个奇怪的事件的来源。

 telefoonTXT.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {startTelIntent();}} ); urlTXT.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {startWebIntent();} }); 

Solutions Collecting From Web of "TextView上的onclick事件(TextIsSelectable =“true”)是ony调用第二次点击"

我也遇到了这个问题。 每当触摸文本视图时,首先onTouch ,然后OnSelection和最后OnClick被调用。 如果我明白你的问题,你要在文本视图中select文本,当用户double tapslong pressesbutton像一般的文字select,但是当用户只需点击一下你想要的onClickfunction。 我认为以下可能会帮助你。

gestureDetector添加到您的文本视图。

 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; } }); 

设置这个…

 TextisSelectable = "false" 

我认为这将是正确的工作