【问题标题】:how to remove the last digit to the left of the cursor in EditText如何在EditText中删除光标左侧的最后一个数字
【发布时间】:2019-06-08 17:02:45
【问题描述】:

我正在制作一次删除 1 个字符的 DEL 按钮。我最近添加了光标移动删除之间的芽不知道如何

我使用子字符串来正常删除。如果在按下之前字符数为 0 或 1,它会崩溃。我添加了 if 语句来修复它。

这是我的删除方法

 public void delete(View view){
        if(textArea.length()==0){
            return;
        }else if(textArea.length()==1){
            if(textArea.getSelectionStart()==textArea.length()){
                textArea.setText("");
            }else{
                return;
            }

        }else {
            int selection = textArea.getSelectionStart();
            textArea.setText(textArea.getText().delete(Math.max(0, selection - 1), selection));
        }
    }

请告诉我如何执行此操作以删除光标左侧的字符。

我为回答者编辑了代码

【问题讨论】:

    标签: java android substring cursor-position


    【解决方案1】:

    你可以像这样使用Editable类的delete方法

     public void delete(View view){
        int selection = textArea.getSelectionStart();
        textArea.setText(textArea.getText().delete(Math.max(0, selection - 1), selection));
    }
    

    【讨论】:

    • Math.max 是做什么的??请解释一下 delete 方法的参数。
    • 我应该把它放在 textArea.setText(); (只是为了防止错误)
    • 返回两个值中较大的一个。
    • 它只是第一次删除它然后什么都不做
    • 我删除了 else 中的 substring 语句并放入了你的代码。
    猜你喜欢
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 2014-04-29
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    相关资源
    最近更新 更多