0
A
回答
0
有一种简单的方法可以为textview创建自定义链接,并通过触摸事件处理其行为。 为了避免撰写和编写自己的模式的包装,使用HTML包装。
TextView tView = ((TextView)v.findViewById(R.id.otp_activation_notification));
Spanned ssBuilder = Html.fromHtml("Not a link <a href=\"foo://haha/arg1/arg2?q1=1&q2=2\">The first link</a> bla bla "
+ " <a href=\"foo://haha2?q3=3\">The second link</a>");
tView.setText(ssBuilder);
tView.setMovementMethod(new LinkMovementMethod(){
@Override
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
//TODO: In order to override the links actions
int x = (int) event.getX();
int y = (int) event.getY();
Layout layout = widget.getLayout();
int line = layout.getLineForVertical(y);
int off = layout.getOffsetForHorizontal(line, x);
try {
URLSpan[] urlSpans = buffer.getSpans(off, off, URLSpan.class);
if (urlSpans != null && urlSpans.length > 0) {
Uri uri = Uri.parse(urlSpans[0].getURL());
String scheme = uri.getScheme();
if ("foo".equals(scheme)) {
String command = uri.getAuthority();
if ("haha".equals(command)) {
List<String> arguments = uri.getPathSegments();
String q1 = uri.getQueryParameter("q1");
String q2 = uri.getQueryParameter("q2");
//TODO: Execute command (pay attention for MotionEvent)
return true;
} else if ("haha2".equals(command)) {
String q3 = uri.getQueryParameter("q2");
//TODO: Execute command2 (pay attention for MotionEvent)
return true;
}
return false;
}
}
} catch (Exception e) {
//Log: unable to parse link;
}
//return false in case you don't want to use default behavior.
return super.onTouchEvent(widget, buffer, event);
}
});
相关问题
- 1. 自定义链接
- 2. 固定链接自定义类型后与自定义分类
- 3. 使用Cargo与自定义链接器
- 4. 自定义的TextView与图标
- 5. 与两个TextView的自定义按钮
- 6. 无法在TextView中插入自定义链接
- 7. 贝宝自定义链接
- 8. WordPress的自定义固定链接
- 9. iphone tableview单元格与自定义textview - 获取textview参考
- 10. TextView中的链接
- 11. 的TextView与多个超链接
- 12. Android:可点击的TextView与链接的链接
- 13. WordPress自定义帖子类型事件与自定义永久链接结构
- 14. NextGen Gallery自定义固定链接
- 15. h2o.glm中的自定义链接函数
- 16. 使用AvalonEdit的自定义超链接
- 17. 自定义类型的帖子链接
- 18. Joomla:自定义组件中的链接
- 19. 自定义模块上的joomla链接?
- 20. Wordpress导航中的自定义链接
- 21. Magento页面的自定义Canonical链接
- 22. Paginate上的自定义链接
- 23. UIWebView中的自定义链接Bug
- 24. Android - 自定义ListView的单独链接?
- 25. 在应用程序中链接的自定义URL链接
- 26. 添加自定义链接到顶部链接Magento的
- 27. 自定义UIButton不能与链接的UIImageView交互
- 28. 与CMAKE中的自定义外部库链接
- 29. 自定义框架:与库的链接二进制文件
- 30. 链接的数据与谷歌自定义搜索API
请问[linkify](https://stackoverflow.com/questions/4746293/android-linkify-textview)能解决你的问题吗? – isabsent
在Linkify的情况下,你必须实现自己的架构和你仍然需要重写Linkmovement方法或者为了编写自己的反应触摸事件。下面的方法使用该框架的HTML包装,这是相当方便的,我想。 – Kvant