如何实现编辑文本的简单语法突出显示方法



我正在制作一个涉及编码的应用程序,我需要编辑文本来识别输入的单词是否是"某物",然后根据它是否注册为着色,它将为单词着色。这就是我想做的,当用户键入并键入"函数"时,我希望它自动突出显示。任何其他"功能"单词、"()"、"以及用户键入的许多其他单词也是如此。

您可以使用 TextWatcher 完成此操作,如下所示:

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

最新更新