在空的EditText上检测退格

时间:2018-09-02 01:24:02

标签: android soft-keyboard

我正在尝试在空的EditText视图中检测软键盘的退格键。我已经搜索了Stack Overflow,Google和大约20个类似的问题,但是 没有人提供用于检测空白EditText中的退格键的解决方案。

所有答案都围绕此博客文章https://code.i-harness.com/en/q/4a914a演变而来 最后明确指出,这不会在空的EditText视图上检测到退格。

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

用于检测EditText的任何事件或文本更改的最可靠的解决方案是使用TextWatcher,但是如果EditText已经为空,则您无法在所有设备上检测到退格键/删除键事件

请记住,这是不可能的,希望您或其他任何人都不会浪费您的时间。

答案 1 :(得分:0)

您可以使用以下代码检测edittext是否为空:

EditText usernameEditText = (EditText) findViewById(R.id.editUsername);
sUsername = usernameEditText.getText().toString();
if (sUsername.matches("")) {
Toast.makeText(this, "You did not enter a username", Toast.LENGTH_SHORT).show();
return;}

答案 2 :(得分:0)

有几种方法可以检测到EditText上的退格键。

  1. 这种方法并非在所有设备上都有效,但是您可以从this post执行以下操作,从而为OnKeyListener设置EditText

    editText.setOnKeyListener(new OnKeyListener() {                 
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // You can identify which key was pressed by checking the keyCode value with KeyEvent.KEYCODE_
            if (keyCode == KeyEvent.KEYCODE_DEL) {  
                // Do something here
            }
            return false;       
        }
    });
    
  2. 或者您可以尝试使用以下方法来检测是否单击了退格键:

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_DEL:
                // Do something here
                return true;
            default:
                return super.onKeyUp(keyCode, event);
        }
    }