码迷,mamicode.com
首页 > 其他好文 > 详细

EditText在光标处插入字符

时间:2018-06-02 14:00:16      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:insert   content   ret   turn   append   快捷键   edit   快捷   ring   

写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在光标处插入字符

标签:insert   content   ret   turn   append   快捷键   edit   快捷   ring   

原文地址:https://www.cnblogs.com/Mr-quin/p/9125176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!