【问题标题】:Android Clickable TextView How To Make Multiple Click Regions on Text And Catch Region Selection [closed]Android Clickable TextView 如何在文本上制作多个点击区域并捕获区域选择 [关闭]
【发布时间】:2012-04-16 10:57:17
【问题描述】:

我想让文本的几个部分分别可点击,例如在下面的文本中:

获取一天、两天、七天的天气预报。

我希望能够单独单击文本的三个不同区域以获取 1 天、2 天或 7 天的预测。我不希望它转到网页 URL,而只是点击显示 TextView 的活动内的文本区域。

【问题讨论】:

标签: android


【解决方案1】:

您应该能够使用ClickableSpan 完成此操作。基本上你需要创建一个SpannableStringBuilder,附加文本部分并为每个可点击的文本部分设置不同的 ClickableSpan。

SpannableStringBuilder sb = new SpannableStringBuilder();
String regularText = "This text is ";
String clickableText = "clickable";
sb.append(regularText);
sb.append(clickableText);
sb.setSpan(new ClickableSpan(), sb.length()-clickableText.length(), sb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView tv = ...
tv.setText(sb);

这只是说明如何设置单个 ClickableSpan 的示例。显然,在循环中执行上述操作并为每次迭代设置一个新的跨度会更有意义。

但是,由于 ClickableSpan 是一个抽象类,您首​​先需要使用自己的具体实现来扩展它。更具体地说,需要实现 onClick 方法来处理点击事件。

另外,不要忘记为 TextView 设置一个 MovementMethod,例如链接移动方法:

tv.setMovementMethod(LinkMovementMethod.getInstance());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多