Android Accessibility Talkback - 处理 TextView 超链接上的 onClick
Android Accessibility Talkback - handle onClick on hyperlink of TextView
我们有一个支持 HTML 标签的文本视图。在这个文本视图中,文本将以 HTML 的形式出现,我们可以完美地填充它。文本可能包含一些超链接。这些超链接位于常规 <a href>
标签中。
这里要注意的是,这些超链接可能在 URLs 之外或指向内部活动的引用路径。
该功能工作正常。但是在 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;
}
});
我删除了 CustomLinkMovementMethod 并在其位置使用自定义 URLSpan class 来捕获嵌入在 HTML 文本中的超链接
Custom URL Span class 类似于下面接受的答案 Whosebug question
我们有一个支持 HTML 标签的文本视图。在这个文本视图中,文本将以 HTML 的形式出现,我们可以完美地填充它。文本可能包含一些超链接。这些超链接位于常规 <a href>
标签中。
这里要注意的是,这些超链接可能在 URLs 之外或指向内部活动的引用路径。
该功能工作正常。但是在 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;
}
});
我删除了 CustomLinkMovementMethod 并在其位置使用自定义 URLSpan class 来捕获嵌入在 HTML 文本中的超链接
Custom URL Span class 类似于下面接受的答案 Whosebug question