突出显示edittext中的关键词

时间:2018-03-01 17:50:11

标签: android android-edittext

我希望在用户输入时突出显示edittext上的特定单词我突出显示了单词,但如果我在突出显示的单词之前添加任何文本,则会更改。

@Override
    public void afterTextChanged(Editable p1)
    {
        // TODO: Implement this method

        if(highlightSearchKey(p1.toString())!=null){

            if(flag){
                flag = false;
                Spannable highlighted = highlightSearchKey(p1.toString());
                p1.replace(0,p1.length(),highlighted);




            }
        }

选择关键词的方法

private Spannable highlightSearchKey(String title) {
        Spannable  highlight = null;
        Pattern    pattern;
        Matcher    matcher;
        int        word_index;
        String     title_str;

        word_index = words.length;
        title_str  = Html.fromHtml(title).toString();

        for (int index = 0; index < word_index; index++) {
            pattern = Pattern.compile("(?i)" + words[index]);
            matcher = pattern.matcher(title_str);
            while (matcher.find()) {
                highlight  = (Spannable) Html.fromHtml(title);
                highlight.setSpan(
                    new ForegroundColorSpan(Color.BLUE), 
                    matcher.start(), 
                    matcher.end(), 
                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            }
        }
        return highlight;
    }

0 个答案:

没有答案