【问题标题】:How to Bold (Span) the searched text in string dynamically?如何动态加粗(跨度)字符串中的搜索文本?
【发布时间】:2018-12-13 13:29:51
【问题描述】:

我有一个字符串,我必须在其中找到一个正在从最终用户搜索的单词并将其加粗以突出显示。

例子:

String : 地址必须有格式。地址可以是多行。

必填文本:地址必须有格式。 地址可以是多行。

【问题讨论】:

    标签: android string spannable spannablestringbuilder


    【解决方案1】:

    经过不同的方法。我编写了以下方法,它将跨越字符串中搜索到的文本。

    如果您想多次跨越相同的文本,他们也可以使用此方法。

    public CharSequence highlightTextString(String completeText, String searchText) {
        String temp = completeText.toLowerCase();
        SpannableStringBuilder highlightText = new SpannableStringBuilder(completeText);
        Pattern pattern = Pattern.compile(searchText.toLowerCase());
        Matcher matcher = pattern.matcher(temp);
        while (matcher.find()) {
            StyleSpan styleSpan = new StyleSpan(android.graphics.Typeface.BOLD);
            highlightText.setSpan(styleSpan, matcher.start(), matcher.end(), 0);
        }
        return highlightText;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 2011-01-08
      • 2018-09-07
      • 2023-02-09
      相关资源
      最近更新 更多