gpt4 book ai didi

java - textview 上的 onclick 事件(具有 TextIsSelectable ="true")仅在第二次单击时调用

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:19 25 4
gpt4 key购买 nike

我在 textview 上有一个 onClickListener 并且 textview 有一个标志,它是 selectable。但是我指定的onclick事件只有在第二次点击textview时才会被调用。第二次后它调用 onclick 权限,但如果另一个 textview 也是 selectable 带有 onclicklistener 它也只调用第二次一次,然后它工作正常,但另一个只工作第二次。我找不到这些奇怪事件的来源。

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

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

最佳答案

我也遇到过这个问题。每当首先触摸 TextView 时 onTouch,然后是 OnSelection,最后 OnClick 被调用。如果我清楚地理解你的问题,你想在用户双击长按时选择 TextView 中的文本,就像通常的文本选择一样,但是当用户只需单击它时,你想要onClick 功能。我认为以下内容可能对您有所帮助。

gestureDetector 添加到您的 TextView 。

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

关于java - textview 上的 onclick 事件(具有 TextIsSelectable ="true")仅在第二次单击时调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19584750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com