密钥代码监听输入密钥以传递给下一个编辑文本

时间:2014-08-27 07:38:14

标签: android listener keycode

我有这段代码

@Override
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)
        {
            int b = v.getId();
            switch (v.getId())
            {
            case R.id.EditTextSurname:
                EditTextName.requestFocus();
                break;
            case R.id.EditTextName:
                // TODO pass to remark
                break;
            case R.id.EditTextRemark:
                // TODO Hide keyboard
                break;
            }
        }
        return true;

    }

我正在听我的editText的回车键。我想按下回车键时传递下一个编辑文本。但如果在// TODO传递给评论

我设置

EditTextRemark.requestFocus();

我可以在调试中看到它传递了第一个请求焦点而没有再次单击输入它将传递给下一个editText。 如果有人为我解释一个解释?感谢。

1 个答案:

答案 0 :(得分:0)

好吧我发现了这个问题,你需要声明事件Action,(键已被按下)或者它会终生传递onkey。

@Override
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        if (event.getAction() == KeyEvent.ACTION_DOWN
                && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)
        {
            switch (v.getId())
            {
            case R.id.EditTextSurname:
                EditTextName.requestFocus();
                break;
            case R.id.EditTextName:
                EditTextRemark.requestFocus();
                break;
            case R.id.EditTextRemark:
                hideSoftKeyboard();
                break;
            }
        }
        return true;

    }