使用“是/否”对话框拦截链接 LinkMovementMethod

QED*_*QED 3 android linkmovementmethod

LinkMovementMethod我建立了一个标准,TextView当用户触摸链接时推送某种网络活动。但是,我想建立一个“您想查看链接吗”对话框,而不是将用户直接带到网页。我尝试过重写触摸方法,但这一切都变得有点复杂。一点帮助?

Raf*_*zki 5

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

  • 创建自定义跨度:更复杂,但您可以完成由可点击部分(或粗体、不同颜色等)组成的更多自定义文本。要了解更多信息,请查看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));
Run Code Online (Sandbox Code Playgroud)