我现在有这个。
ClickableSpan span = new ClickableSpan(...){...};
String text = "I am some <b>awesome</b> text";
Spanned spanned = Html.fromHtml(text);
SpannableStringBuilder builder = new SpannableStringBuilder(spanned);
int start = builder.nextSpanTransition(0, builder.length(), StyleSpan.class);
int stop = builder.nextSpanTransition(start, builder.length(), StyleSpan.class);
builder.setSpan(span, start, stop, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
textView.setText(builder);
TextView使用带有“awesome”一词加粗和下划线(Yay)的文字进行渲染。但是在我看来,我无法关注我在clickablespan中指定的文本子区域。我可以通过触摸事件点击它,但我无法集中注意力。我在Android 1.5 + 2.1上测试它。我也尝试过UrlSpan。
我也试过而不是使用ClickableSpan,实际上将onClick监听器附加到整个文本块,但这不会给区域提供焦点,只是让点击更容易。请帮忙
答案 0 :(得分:2)
好的,我只是想通了。我最初看的是UrlSpan文档,然后盲目地实现了ClickableSpan。
textView.setMovementMethod(LinkMovementMethod.getInstance());
神奇地通过这个没有证件的班级的力量......它有效。基本上我认为正在发生的是,MovementMethod是一种为文本视图提供处理光标输入的策略的方法。