我正在使用我在 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/