Android:带语法高亮的EditText

时间:2016-07-19 07:09:22

标签: android android-edittext highlighting

如何使用语法高亮显示EditText?有现成的解决方案? 在我看来,要插入的HTML标签不是最佳选择,应用程序会慢下来。

2 个答案:

答案 0 :(得分:7)

  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);
        }
    }
});

提到from

答案 1 :(得分:1)

你可以这样使用。,

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);
        }
    }
});

请试试这个,这可能会有所帮助。