Android:EditText带有语法高亮显示

Android:EditText带有语法高亮显示,android,android-edittext,highlighting,Android,Android Edittext,Highlighting,如何使EditText具有语法突出显示?有现成的解决方案吗? 在我看来,插入HTML标签并不是最好的选择,应用程序会变慢。你能这样使用吗 editText.addTextChangedListener(new TextWatcher() { final String FUNCTION = "function"; @Override public void beforeTextChanged(CharSequence s, int start, int count, int

如何使EditText具有语法突出显示?有现成的解决方案吗?
在我看来,插入HTML标签并不是最好的选择,应用程序会变慢。

你能这样使用吗

editText.addTextChangedListener(new TextWatcher() {
    final String FUNCTION = "function";
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {}

    @Override
    public void afterTextChanged(Editable s) {
        int index = s.toString().indexOf(FUNCTION);
        if (index >= 0) {
            s.setSpan(
                    new ForegroundColorSpan(Color.CYAN),
                    index,
                    index + FUNCTION.length(),
                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
    }
});
请试试这个,这可能会有帮助

  editText.addTextChangedListener(new TextWatcher() {
    final String FUNCTION = "function";
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {}

    @Override
    public void afterTextChanged(Editable s) {
        int index = s.toString().indexOf(FUNCTION);
        if (index >= 0) {
            s.setSpan(
                    new ForegroundColorSpan(Color.CYAN),
                    index,
                    index + FUNCTION.length(),
                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
    }
});
参考

检查此项