zoukankan      html  css  js  c++  java
  • 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,"```
    
    ```");
                    setEditTextCusorRollLeft(mEdContent,4);
                    break;
                case R.id.sk_use:
                    mEdContent.append("> ");
                    break;
                case R.id.sk_xieti:
                    mEdContent.append("**");
                    setEditTextCusorRollLeft(mEdContent,1);
                    break;
    
  • 相关阅读:
    hdu 1106 排序(排序)
    hdu 1040 As Easy As A+B(排序)
    hdu 1029 Ignatius and the Princess IV(排序)
    mysql-9索引
    mysql-8 alter命令
    mysql-7事务管理
    mysql-6正则表达式
    http协议
    9-2交互体验
    9-2专项测试下午
  • 原文地址:https://www.cnblogs.com/Mr-quin/p/9125176.html
Copyright © 2011-2022 走看看