在用户输入时更改文本颜色?

bwo*_*gie 5 android string-formatting android-edittext

当用户输入EditText时,我希望某些关键字能够改变颜色.当应用程序发现用户输入HTML并使用Html.fromHtml时,我可以在关键字周围放置HTML标签,但用户将自己输入真正的HTML标签,这会弄乱它.所以我想我应该使用Spannable?

我应该如何扫描这些关键字的EditText?意义 - 什么是最有效的方式?我想的可能是所有关键字的数组 - 然后循环查看是否找到任何匹配项.关于如何处理这个的任何想法?

om2*_*345 2

您好,在 EditText 上使用 TextWatcher 查看用户正在输入的内容,并使用 Linkify 检查模式。 https://developer.android.com/reference/android/text/util/Linkify.html

EditText.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int arg1, int arg2, int arg3) {
                // TODO Auto-generated method stub

            }
Run Code Online (Sandbox Code Playgroud)

}

使用 onTextChanged Listener 检查用户正在输入的内容。

模式匹配示例.. int flags = Pattern.CASE_INSENSITIVE; 模式 p = Pattern.compile("\[0-9]*\", flags); Linkify.addLinks(myTextView, p, "content://com.foo");