Android OnKeyListener OnKey重复操作

Android OnKeyListener OnKey重复操作,android,keylistener,keyevent,Android,Keylistener,Keyevent,我试图在用户单击“DEL”键(在屏幕键盘上)时修改操作,代码如下 ed.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_DEL) { if(contadorcor ==

我试图在用户单击“DEL”键(在屏幕键盘上)时修改操作,代码如下

ed.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_DEL) {
                if(contadorcor == 0){
                    String output = correctOutput(String.valueOf(ed.getText()));
                    ed.setText(output);
                    ed.setSelection(num);
                    contadorcor++;
                }
            }
            contadorcor = 0;
            return false;
        }
    });

public static String correctOutput(String s) {
    String input = s;
    int pos = 0;
    for (int i = 0; i < input.length(); i++) {
            if(input.charAt(i) != ' ') {
            if(input.charAt(i) != '_') {
                pos = i;
            }
        }
    }
    String output = "";
    for (int i = 0; i < input.length(); i++) {
        if(i != pos) {
            output = output + String.valueOf(input.charAt(i));
        } else {
            output = output + "_";
        }
    }
    num = num - 2;
    return output;
}
ed.setOnKeyListener(新视图.OnKeyListener(){
@凌驾
公共布尔onKey(视图v、int keyCode、KeyEvent事件){
if(keyCode==KeyEvent.keyCode_DEL){
如果(contadorcor==0){
字符串输出=正确的输出(String.valueOf(ed.getText());
ed.setText(输出);
教育部选举(num);
contadorcor++;
}
}
contadorcor=0;
返回false;
}
});
公共静态字符串输出(字符串s){
字符串输入=s;
int pos=0;
对于(int i=0;i