如何使用主题标签更改单词的颜色

2023-11-26

我需要能够以不同的颜色显示所有以 # 开头的单词的文本,并且它们应该是可单击的。我怎样才能做到这一点?


这应该可以解决问题

private void setTags(TextView pTextView, String pTagString) {
    SpannableString string = new SpannableString(pTagString);

    int start = -1;
    for (int i = 0; i < pTagString.length(); i++) {
        if (pTagString.charAt(i) == '#') {
            start = i;
        } else if (pTagString.charAt(i) == ' ' || pTagString.charAt(i) == '\n' || (i == pTagString.length() - 1 && start != -1)) {
            if (start != -1) {
                if (i == pTagString.length() - 1) {
                    i++; // case for if hash is last word and there is no
                            // space after word
                }

                final String tag = pTagString.substring(start, i);
                string.setSpan(new ClickableSpan() {

                    @Override
                    public void onClick(View widget) {
                        Log.d("Hash", String.format("Clicked %s!", tag));
                    }

                    @Override
                    public void updateDrawState(TextPaint ds) {
                        // link color
                        ds.setColor(Color.parseColor("#33b5e5"));
                        ds.setUnderlineText(false);
                    }
                }, start, i, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                start = -1;
            }
        }
    }

    pTextView.setMovementMethod(LinkMovementMethod.getInstance());
    pTextView.setText(string);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用主题标签更改单词的颜色 的相关文章

随机推荐

  • 是否可以将类内类的实例设置为 null

    是否可以将类内类的实例设置为 null 例如 我可以做这样的事情吗 int main Create a new test object Test test new Test Delete that object This method sh
  • Grit的clone方法未定义?

    我最近开始从事一个使用 git 进行存储并使用 ruby 作为前端的项目 我的脚本的第一个版本使用 ruby git 虽然非常简单 但还可以 当我需要对我的提交和日志进行更具体的工作时 建议我转向坚毅 然而 我在早期遇到了一个障碍 grit
  • 如何在wkwebview中下载文件

    有人请告诉我如何在 iOS wkwebview 中下载文件 我创建了一个 iOS 网络视图应用程序 在我加载的页面中 它有几个下载选项 但是当我单击下载时没有任何反应 注意 我不想创建额外的下载按钮 Since macOS 11 3 and
  • PHP json_encode 数组 0 键的问题

    我在使用 json encode 从数组生成 json 编码字符串时遇到问题 有问题的数组部分如下所示 RatingDistribution Array 11 elements 0 Array 1 element 0 String 3 ch
  • Pandas:根据其他行删除行

    我有一个 pandas 数据框 如下所示 qseqid sseqid qstart qend 2 1 125 345 4 1 150 320 3 2 150 450 6 2 25 300 8 2 50 500 我想根据以下条件删除基于其他行
  • 有没有办法在 iOS 上的 Safari 中禁用向后滑动动画?

    我想在 SPA 上完全禁用向后滑动动画 这将允许我在 SPA 中使用一些滑动手势 目前 在 iOS 上 当触发某些手势时 您往往还会触发向后滑动手势 我找到了关于如何禁用它的上一篇文章 iOS 7 有没有办法禁用 Safari 中的向后和向
  • Gradle 构建过程中使用了哪个已安装的 JDK

    这是我的输出gradle v 在使用包装器的项目中 gradlew v Gradle 5 0 Build time 2018 11 26 11 48 43 UTC Revision 7fc6e5abf2fc5fe0824aec8a0f546
  • 当数据适合行时,VARCHAR 与 TEXT 性能比较

    mysql gt desc temp1 Field Type Null Key Default Extra value varchar 255 YES NULL mysql gt desc temp2
  • 派生类中的私有虚函数[重复]

    这个问题在这里已经有答案了 可能的重复 C 重写公共 私有继承 class base public virtual void doSomething 0 class derived public base private lt Note t
  • 当标志在不同线程中更改时,While 循环不会结束[重复]

    这个问题在这里已经有答案了 我的 Java 程序的 main 方法中有一个 while 循环正在运行 该循环应该一直运行 直到在程序的 keyPressed 方法中将布尔标志变量设置为 true 我将程序作为 KeyListener 添加到
  • 如何修复 xcrun 无法找到 simctl 错误?

    我有 Xcode 6 2 Beta 尝试 xcrun simctl in terminal yields xcrun 错误 无法找到实用程序 simctl 不是开发人员工具或在 PATH 中 我通过输入解决了这个问题 Xcode gt Pr
  • 格式化 SoapUI 项目文件

    我使用 SoapUI 的免费版本 版本 4 6 1 并注意到它的项目文件格式非常糟糕 它的许多元素并不像开发人员维护的大型 XML 文件那样位于专用行或缩进中 这使得区分和合并对源代码控制项目文件的更改变得更加困难 我知道 SoapUI P
  • 如何从工作表中删除公式但保留其计算值[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 询问代码的问题必须对所解决的问题表现出最低限度的了解 包括尝试的解决方案 为什么不起作用以及预期结果 也可以看看 Stack Overflow 问题清单 有关您编写的代码的问题必须描
  • WPF 中的分段文本框

    有谁知道免费或商业 WPF 控件可以执行以下操作 每个框 X 个字符 并在完成每个框时自动跳到下一个框 类似于为 Microsoft 产品输入许可证密钥的方式 我认为从头开始做起来并不是特别困难 但如果已经存在一个很好的例子 我想避免重新发
  • 如何在 NestedScrollView 中使用 RecyclerView

    我有这样的布局
  • 在rails4中设置hstore,动态键/值

    我第一次在 Rails4 应用程序中使用 Hstore 并且在表单中使用 javascript 为 hstore 列构建动态表单字段 schema 在 Rails 4 中 我不需要在模型中添加任何 setter getter 方法 对吗 在
  • 在 Scala 中使用 Streams 进行迭代

    SICP表示迭代过程 例如平方根计算的牛顿法 pi 计算等 可以用以下形式表示Streams 有人用吗streams在 Scala 中建模迭代 这是生成 pi 近似值流的一种方法 val naturals Stream from 0 0 1
  • 通过引用传递键和值的替代方法:

    有人可以向我解释为什么你不能传递密钥作为参考吗 Ex if is array where foreach where as key gt value key sec key value sec value unset key value T
  • fsync、sync:它真的做了它应该做的事情吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想对 Linux 2 6 31 中的sync 8 和 fsync 函数的功能有更多的说明 它是否确保文件写入相应的存储 http linux die net man 8 sync
  • 如何使用主题标签更改单词的颜色

    我需要能够以不同的颜色显示所有以 开头的单词的文本 并且它们应该是可单击的 我怎样才能做到这一点 这应该可以解决问题 private void setTags TextView pTextView String pTagString Spa