TextView 的 AutoLink 属性和 onLongClick 冲突

在 TextView 需要设置 AutoLink 的属性来标记 'phone' 、 'web' 、'email' ,但是这个时候我们要给 TextView 设置 onLongClick() 事件,这个时候就会起冲突了。

解决方法

在 onTouchEvent 里面自己处理长按事件,如果按下和抬起的时间大于 500ms 就判定为长按时间,返回 true ,屏蔽掉 AutoLink 的事件
(不知道 Android 的长按事件是多少 ms ,就给了 500 ms,测试了一下感觉还可以。如果有谁知道 Android 的长按事件的时间,望告知,谢谢。)

long time;

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            time = System.currentTimeMillis();
        } else if (event.getAction() == MotionEvent.ACTION_UP)
            if (System.currentTimeMillis() - time > 500)
                return true;
        return super.onTouchEvent(event);
    }

你可能感兴趣的:(TextView 的 AutoLink 属性和 onLongClick 冲突)