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在光标处插入字符的主要内容,如果未能解决你的问题,请参考以下文章