Android textview span

素颜马尾好姑娘i 2022-11-13 00:54 264阅读 0赞

一、需求背景

一个简单的字符串”This is a link and this is another link”。想有两个“链接”字点击,有不同的网址打开浏览器。

二、实现

  1. String str="Cat link 1 Cat link 2 Cat link 3";
  2. SpannableString spannableString = new SpannableString(str);
  3. String first ="Cat link 1";
  4. String second ="Cat link 2";
  5. String third ="Cat link 3";
  6. int firstIndex = str.toString().indexOf(first);
  7. int secondIndex = str.toString().indexOf(second);
  8. ClickableSpan firstWordClick = new ClickableSpan() {
  9. @Override
  10. public void onClick(View widget) {
  11. ///............
  12. }
  13. };
  14. ClickableSpan secondWordClick = new ClickableSpan() {
  15. @Override
  16. public void onClick(View widget) {
  17. ///............
  18. }
  19. };
  20. ss.setSpan(firstWordClick,firstIndex, firstIndex+first.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  21. ss.setSpan(secondWordClick,secondIndex, secondIndex+second.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  22. textView.setLinksClickable(true);
  23. textView.setMovementMethod(LinkMovementMethod.getInstance());
  24. textView.setText(spannableString, BufferType.SPANNABLE);

发表评论

表情:
评论列表 (有 0 条评论,264人围观)

还没有评论,来说两句吧...

相关阅读

    相关 spanned android

    项目中往往需要显示一段文本,如果对文本需要特定的效果,就要写自定义的span,这样的工作量会变得很大,目前android支持html格式的文本,下面就是我对android支持h

    相关 Android 文本视图TextView

    TextView想必大家都很熟悉了,不管在哪门语言中,文本显示是最为基础的。TextView的基本属性有很多,我就不一一介绍了。这里我们直接通过几个例子来看下TextView的