如何在edittext中更改文本颜色来替换特定单词

时间:2014-03-12 11:10:14

标签: android

String text="Android is a operating system for mobile. Android latest version is kitkat.";

我有两个edittext。第一个edittext用于搜索文本。第二个edittext用于显示文本。

如果我在第一个edittext中输入了android,它会搜索String文本并在第二个edittext中显示结果。现在mu问题是如何通过仅更改Android文本的颜色来替换Android文本。
例如:Android(红色)是移动操作系统。 Android(红色)最新版本是kitkat。

我试过String ss=text.replaceAll(Android font color=\"red\" + Android + "/font
这个代码。
edtresult.setText(Html.fromHtml(SS)。
Html删除所有空格

提前致谢

2 个答案:

答案 0 :(得分:3)

您可以像这样尝试Spannable:

EditText et = (EditText) findViewById(R.id.edit_text);
        SpannableString ss = new SpannableString("Android is a operating system for mobile. Android latest version is kitkat.");
        String textToSearch = "Android";
        Pattern pattern = Pattern.compile(textToSearch);
        Matcher matcher = pattern.matcher(ss);
        while (matcher.find()) {
            ss.setSpan(new ForegroundColorSpan(Color.RED), matcher.start(), matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
et.setText(ss);

答案 1 :(得分:1)

您可以按照here

所述使用Spannables