对于多行EditText按下的ENTER键,不会触发android:onKeyListener

时间:2013-11-27 05:51:25

标签: android user-interface

我发现了很多类似的问题但是它们都不能用于多行EditText。 如果我设置inputType="text" EditText变为单行并且返回仅未显示。我还需要“Enter”按钮为“Enter”按钮(不是“Next”或“Done”)。

content.setOnKeyListener(new View.OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN &&
                keyCode == KeyEvent.KEYCODE_ENTER)
                    doSmthSpecial();

            return false;
        }
    });

2 个答案:

答案 0 :(得分:2)

我不知道为什么它没有调用ENTER键事件。但你可以选择另一种方法,为你提供同样的目的。使用OnEditorActionListener

    editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {

        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            doSomethingSpecial();
            return true;
        }
    });

在EditText上按ENTER键时调用此方法。

答案 1 :(得分:0)

我也在互联网上为这个问题的解决方案挖了很多时间,然后我发现了这个:

et.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER));

et is you edit text.

这对我来说就像魅力一样。