LinkMovementMethod
当用户触摸链接时,我建立了一个标准TextView
来推送某种网络活动。但是,我想建立一个“你想看链接吗”对话框,而不是让用户直接进入网页。我尝试过覆盖触摸方法,但这一切都有些复杂。一点帮助?
1051 次
1 回答
3
您可以通过两种方式完成它:
- 创建自定义跨度:更复杂,但您可以完成更多由可点击部分(或粗体、不同颜色等)组成的自定义文本。要了解更多信息,请查看ClickableSpan和SpannableStringBuilder
- 扩展
LinkMovementMethod
以接受自定义点击监听器
在我看来,第二种解决方案在像你这样的基本情况下更好。您可以这样做:
- 将此 java 类:InternalLinkMovementMethod复制到您的项目中
- 添加将您的 TextView 的链接移动方法设置为此自定义方法,提供点击侦听器:
OnLinkClickedListener clickListener = new OnLinkClickedListener() {
@Override
public boolean onLinkClicked(String linkText) {
// here you can handle your click, eg show the dialog
// `linkText` is the text being clicked (the link)
// return true if handled, false otherwise
}
}
yourTextView.setMovementMethod(new InternalLinkMovementMethod(clickListener));
于 2018-05-15T05:06:02.453 回答