软输入键盘keydown捕获不起作用

时间:2016-09-11 11:49:59

标签: java android

我正在构建一个应用程序,我需要确定用户在软输入键盘上按下了什么键。我有以下功能,只有按下输入和返回键时才会触发日志 - 64和67.当按下键盘上的任何其他键时没有任何反应。

<fieldset addfieldpath="administrator/components/com_categories/models/fields"></fieldset>

2 个答案:

答案 0 :(得分:0)

使用TextWatcher获取当前键入的文本。

 edittext.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            // TODO Auto-generated method stub
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            // TODO Auto-generated method stub
        }

        @Override
        public void afterTextChanged(Editable s) {

            // TODO Auto-generated method stub
        }
    });

答案 1 :(得分:0)

您需要添加setOnKeyListener()方法:

edittext.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {

            if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER){
                Toast.makeText(getApplicationContext(), "Clicked ENTER or END button", Toast.LENGTH_SHORT).show();
            }
            return false;
        }
    });

当然,这是Enter键的示例。