java - 如何实现简单的edittext语法高亮方法?

标签 java android android-edittext syntax-highlighting

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

最佳答案

您可以使用 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);
            }
        }
    });

关于java - 如何实现简单的edittext语法高亮方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20668792/

相关文章:

android - ORMlite 没有返回我刚刚保存的对象

android - 水平EditText的光标

Android:在浏览器中编辑文本行为

java - 嵌套异常是 java.lang.NoClassDefFoundError : Could not initialize class com. my.util.HibernateUtil

java - 使用客户端时在 Apache CXF 上禁用 FastInfoset(强制 XML)

java - Android录音应用程序,录音无法开始

android - 如何在焦点更改时停止软键盘自动显示(OnStart 事件)

java - 使用java将记录插入mysql

java - 类魔法 - 自动按类型对对象进行排序

android - parse.com android关系查询