android - 在使用 Linkify 查找和设置文本内的链接时处理对 TextView 链接的点击

标签 android textview linkify spannable urlspan

我有一个 TextView,其中填充了我从服务器获取的文本。我正在使用 Linkify用于处理所有链接搜索并在其 addLinks 方法中根据需要设置 URLSpan。

问题是点击链接时的默认行为是在浏览器中打开它,我想要的是获取点击的链接并自行处理。

我没有看到任何让我设置“OnClick”或其他东西的 Linkify 方法...

感谢您的帮助:)

最佳答案

好的,所以我终于设法将自己的“OnClickListener”设置为 TextView 的链接。 我的解决方案是将 Linkify 复制到我的项目中,将其命名为 CustomLinkify 并更改其 applyLink 方法:

来自:

private static final void applyLink(String url, int start, int end, Spannable text) 
{
    URLSpan span = new URLSpan(url);

    text.setSpan(span, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}

收件人:

private static final void applyLink(final String url, int start, int end, Spannable text) 
{
    URLSpan span = new URLSpan(url)
    {
        @Override
        public void onClick(View widget)
        {
            _onLinkClickListener.onLinkClicked(url);
        }
    };

    text.setSpan(span, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}

其中 _onLinkClickListener 是一个新字段,由我在使用新的 CustomLinkify 之前设置。

我知道这不是一个非常优雅的解决方案,我更喜欢谷歌允许通过本地 Linkify 设置监听器,但是,对我来说,这比实现我自己的 Spannable 逻辑更好(如建议的其他相关问题)。

我相信 Linkify 代码,我想我会不时检查它是否有任何更改,如果有,我当然会更新 CustomLinkify 进行更改。

希望这会对某人有所帮助。

关于android - 在使用 Linkify 查找和设置文本内的链接时处理对 TextView 链接的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20242000/

相关文章:

android - CollapsingToolbarLayout : Change home button color when expanded

java - 设置安卓应用背景图片

android - 如何使用 Onclick 获取按钮的位置并使 Textview 出现在按钮的中心

android - AutoCompleteTextView/MultiAutoCompleteTextView 上缺少默认字典

没有第一个字符的Android linkify

java - Linkify 的奇怪选择行为

android - 如何在 Android 中使用 Tab 时跨 Activity 存储信息

javascript - 无法让 native Android View 显示在 React Native 中

android - 如何根据另一个人的宽度为TextView的第一行设置缩进

Android 使 TextView 中的超链接可点击