Android - EditText删除(软按钮)键事件和删除操作

时间:2018-04-10 10:39:21

标签: android android-edittext keylistener

在我的片段中,我想拦截事件"删除(软按钮)按下"来自软件键盘,在EditText上。

我可以使用以下代码执行此操作:

positionEditText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
            if(keyCode == KeyEvent.KEYCODE_DEL) {
                Log.d("TAG", "OnKeyListener, premuto BACKSPACE");
                backspacePressed = true;
                return true;
            }
            return false;
        }
    });

问题是这样做,我无法正确删除编辑文本。删除功能仅在我按住删除按钮时才有效。

2 个答案:

答案 0 :(得分:1)

if(keyCode == KeyEvent.KEYCODE_DEL) {
    Log.d("TAG", "OnKeyListener, premuto BACKSPACE");
    backspacePressed = true;
    return true; // This is the problem
}

通过返回 true 你告诉系统......我将处理。删除它,它会工作。

答案 1 :(得分:0)

试试这个:

positionEditText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
            if(keyCode == KeyEvent.KEYCODE_DEL) {
                Log.d("TAG", "OnKeyListener, premuto BACKSPACE");
                backspacePressed = true;
            }
            return false;
        }
    });