android - 如何在textView android中获取所有活动的跨度链接
问题描述
我有一个文本视图,里面有一个带有一些链接的文本(其中一些是自定义的,例如我手动使它们可链接的银行卡号),有没有办法在列表中提取文本视图的所有链接部分?
我希望通过 TalkBack 处理链接
例子:
这是www.google.com的文本,编号为6273 5331 2134 1234
我想得到这些粗体文本:
- www.google.com
- 6273 5331 2134 1234
解决方案
终于找到答案了:
只需将文本转换为可编辑,然后检索所有跨度。
Editable editable = new Editable.Factory().newEditable(textView.getText());
ClickableSpan[] ClickableSpans = editable.getSpans(0,editable.length(), ClickableSpan.class);
ClickableSpan[] UrlSpans = editable.getSpans(0,editable.length(), URLSpan.class);
您可以从上述方法中检索所有 CustomSpan。这也适用于editText。
推荐阅读
- swift - 如何在辅助类中正确处理@EnvironmentObject
- python - SQL Alchemy 全局引擎的合适位置
- android - Android 10 向外部显示器/虚拟显示器注入输入
- sql - 尽管检查,同时执行插入命令将数据两次写入数据库
- django - Django JsonResponse:用户匹配查询不存在
- javascript - 在 Python 中解析 Javascript 值
- angular - 无法从集合 firebase angular 中删除文档
- sql - 使用 JOIN 和 SQL 列出和计数项目
- ruby-on-rails - 无法从 Ruby On Rails 自定义路由中获取所需的值
- mysql - 在 Ubuntu 18.04 上使用 mysqlimport 在 5.7.31 版本中缓慢导入 mysql 中的数据