1

LinkMovementMethod当用户触摸链接时,我建立了一个标准TextView来推送某种网络活动。但是,我想建立一个“你想看链接吗”对话框,而不是让用户直接进入网页。我尝试过覆盖触摸方法,但这一切都有些复杂。一点帮助?

4

1 回答 1

3

您可以通过两种方式完成它:

  • 创建自定义跨度:更复杂,但您可以完成更多由可点击部分(或粗体、不同颜色等)组成的自定义文本。要了解更多信息,请查看ClickableSpanSpannableStringBuilder
  • 扩展LinkMovementMethod以接受自定义点击监听器

在我看来,第二种解决方案在像你这样的基本情况下更好。您可以这样做:

  1. 将此 java 类:InternalLinkMovementMethod复制到您的项目中
  2. 添加将您的 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 回答