【问题标题】:Delete key is not working删除键不起作用
【发布时间】:2012-06-02 20:19:25
【问题描述】:

我为 Enter keyevent 添加了 setOnKeyListener。但是,在我添加 setOnKeyListener 后,删除(退格)键不起作用。当我删除 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;
            }


        });

【问题讨论】:

    标签: android


    【解决方案1】:

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

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

    Android: Problem with overriding onKeyListener for a Button

    【讨论】:

    • 谢谢!我的问题是,尽管我只覆盖了输入键,但切换键盘语言后删除停止工作。此外,该问题并未出现在 android 8 上,但存在于早期版本中。你节省了我的时间!
    【解决方案2】:

    根据documentationonKey如果监听器已经消费事件返回True,否则返回false。在你的情况下:

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

    当您的方法返回 true 时,不会处理键并且退格不起作用。

    【讨论】:

      猜你喜欢
      • 2017-03-10
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-03
      • 2019-08-29
      • 1970-01-01
      相关资源
      最近更新 更多