EditText在光标处插入字符

Posted 超界:亿万年的星光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EditText在光标处插入字符相关的知识,希望对你有一定的参考价值。

写MarkDown编译器的快捷键时碰到的常见但又不太好想的问题

通用代码

//获取光标位置
    private int getEditTextCursorIndex(EditText editText){
        return editText.getSelectionStart();
    }
    //向光标处插入文本
    private void insertText(EditText editText,String string){
        editText.getText().insert(getEditTextCursorIndex(editText),string);
    }
    //光标左移
    private void setEditTextCusorRollLeft(EditText editText,int rollLeft){
        editText.setSelection(getEditTextCursorIndex(editText)-rollLeft);
    }

快捷键实现样例

case R.id.sk_head1:
                insertText(mEdContent,"# ");
                break;
            case R.id.sk_head2:
                insertText(mEdContent,"## ");
                break;
            case R.id.sk_head3:
                insertText(mEdContent,"### ");
                break;
            case R.id.sk_code:
                insertText(mEdContent,"```\n\n```");
                setEditTextCusorRollLeft(mEdContent,4);
                break;
            case R.id.sk_use:
                mEdContent.append("> ");
                break;
            case R.id.sk_xieti:
                mEdContent.append("**");
                setEditTextCusorRollLeft(mEdContent,1);
                break;

以上是关于EditText在光标处插入字符的主要内容,如果未能解决你的问题,请参考以下文章

vi的使用—插入删除复制粘贴

设置 EditText 光标颜色

vim常用操作

Linux vim简单操作命令

如何在htmlText文本框光标处插入字符

Linux--Vi编辑命令(插入替换命令行模式撤销)