android - 在启用自动链接的 TextView 中控制 onclicklistener

标签 android

我正在使用我在 XML 文件中设置 autolink="web" 属性的 TextView。我还为此 TextView 实现了 onClickListener。问题是,当 TextView 中的文本包含超链接时,如果我触摸该链接,该链接会在浏览器中打开,但同时 onClickListener 也会触发。我不想那样。

我想要的是,如果我触摸超链接 clickListener 不应该触发。只有当我触摸未超链接的文本部分时,它才会触发。有什么建议吗?

最佳答案

您可以使用 Textview 类的 getSelectionStart() 和 getSelectionEnd() 函数来解决此问题,

tv.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ClassroomLog.log(TAG, "Textview Click listener ");
        if (tv.getSelectionStart() == -1 && tv.getSelectionEnd() == -1) {
            //This condition will satisfy only when it is not an autolinked text
            //Fired only when you touch the part of the text that is not hyperlinked 
        }
    }
});

这可能是一个迟到的回复,但可能对那些正在寻找解决方案的人有用。

关于android - 在启用自动链接的 TextView 中控制 onclicklistener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3624297/

相关文章:

android - 希腊字符 - phpMyAdmin

java - Android 应用程序显示广告或应用程序屏幕,但不能同时显示两者

java - Android:在 fragment 内膨胀自定义 View

android - 当有产品口味时,wear apk 不会部署

java - Android:在 ActionBarSherlock 项目中的 Android 2.3 上,按钮的 findViewById 返回 null

android - 更改工具栏中汉堡包图标的大小?

android - 如何让Android应用程序记住用户数据/个人资料?

java - 以编程方式添加组件的样式与 XML 布局中的样式不同

android - 类未找到异常 "android.support.v4.graphics.drawable.DrawableWrapper"

android - 按下按钮后 Android 中的互联网连接