首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SpannableStringBuilder多次对模式进行setSpan

使用SpannableStringBuilder多次对模式进行setSpan
EN

Stack Overflow用户
提问于 2015-11-21 14:31:32
回答 1查看 1.1K关注 0票数 3

我有一个使用SpannableStringBuilder的代码。但我的主弦中有很多我的图案。使用这些代码,我只需更改最后找到的模式。这是我的密码:

代码语言:javascript
复制
final Pattern ptn = Pattern.compile("java"); // i have 9 "java" in my string
    final Matcher matcher = ptn.matcher(getString(R.string.test2));
    final SpannableStringBuilder spannable = new SpannableStringBuilder(getString(R.string.test));
    final ForegroundColorSpan span = new ForegroundColorSpan(Color.GREEN);
    while (matcher.find()) {
        spannable.setSpan(span, matcher.start(), matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
    txtView.setText(spannable);

我不知道穆的问题在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-21 16:30:35

尝试为每个循环创建跨度,如下所示:

代码语言:javascript
复制
final Pattern ptn = Pattern.compile("java"); // i have 9 "java" in my string
final Matcher matcher = ptn.matcher(getString(R.string.test2));
final SpannableStringBuilder spannable = new SpannableStringBuilder(getString(R.string.test));

while (matcher.find()) {
    final ForegroundColorSpan span = new ForegroundColorSpan(Color.GREEN);
    spannable.setSpan(span, matcher.start(), matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
txtView.setText(spannable);
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33844485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档