【问题标题】:Android Accessibility Talkback - handle onClick on hyperlink of TextViewAndroid Accessibility Talkback - 在TextView的超链接上处理onClick
【发布时间】:2020-10-17 12:44:27
【问题描述】:

我们有一个支持 HTML 标签的文本视图。在这个文本视图中,文本将以 HTML 的形式出现,我们可以完美地填充它。文本可能包含一些超链接。这些超链接在常规的<a href> 标记中。

这里要注意的是,这些超链接可能是外部 URL 或内部活动的引用路径。

该功能工作正常。但是在Talkback功能期间,内部路径没有调用onClick方法来调用各自的意图并抛出错误

错误

W/URLSpan: Actvity was not found for intent, Intent { act=android.intent.action.VIEW dat=/abc/xyz/CONTACT_US (has extras) }

下面的代码是我们捕获 onClick 并打开相应页面的处理程序。但是这种方法在对讲期间不会触发。相反,URL 取自文本本身。 有没有办法覆盖对讲来使用我们的方法?

处理超链接点击的方法的代码。

CustomLinkMovementMethod.linkify(Linkify.ALL, text)
                        .setOnLinkClickListener(new CustomLinkMovementMethod.OnLinkClickListener() {
                            @Override
                            public boolean onClick(TextView textView, String url) {
                                Log.d(TAG, "onClick: " + url);
                                if (mContext instanceof Activity) {
                                    ((Activity)mContext).handleLink( url );
                                }
                                return false;
                            }
                        });

【问题讨论】:

    标签: java android hyperlink accessibility talkback


    【解决方案1】:

    我删除了 CustomLinkMovementMethod,取而代之的是使用自定义 URLSpan 类来捕获嵌入在 HTML 文本中的超链接

    自定义 URL Span 类类似于以下StackOverflow question 中接受的答案

    【讨论】:

      猜你喜欢
      • 2016-12-13
      • 1970-01-01
      • 2012-12-26
      • 2015-08-30
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      相关资源
      最近更新 更多