删除键无效

时间:2012-06-02 20:19:26

标签: android

我为Enter keyevent添加了setOnKeyListener。但是,在我添加setOnKeyListener之后,delete(退格)键无法正常工作。当我删除setOnKeyListener时,删除键工作正常。

如何修复删除键效果不错?

final EditText edittext = (EditText) findViewById(R.id.editText1);

        edittext.setOnKeyListener(new OnKeyListener() {


            @Override
            public boolean onKey(View arg0, int arg1, KeyEvent event) {
                // TODO Auto-generated method stub
                 if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {

                     InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                        in.hideSoftInputFromWindow(edittext
                                .getApplicationWindowToken(),
                                InputMethodManager.HIDE_NOT_ALWAYS);

                     applySearch();


                 }
                return true;
            }


        });

2 个答案:

答案 0 :(得分:4)

如果您返回True,则表示您正在处理所有密钥。试试这个:

if (event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
    // something here
    return true;
}

// otherwhise
return false;

Android: Problem with overriding onKeyListener for a Button

答案 1 :(得分:3)

根据documentation onKey返回True,如果侦听器已经使用了该事件,否则返回false。在你的情况下:

@Override
public boolean onKey(View arg0, int arg1, KeyEvent event) {
    ...
    return true; // Try to return false instead
}

当您的方法返回true时,密钥未经处理且退格无效。