OnEditorActionListener无法正常工作

我只是想在用户按下editTextinput时捕捉事件。

我没有得到Toast消息,而不是“按下Enter”,而不是“按下某个按键!” 无论是。

什么是做错了?

myEditText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { Toast.makeText(getApplicationContext(), "Some key pressed!", Toast.LENGTH_LONG).show(); if (event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) { Toast.makeText(getApplicationContext(), "Enter pressed", Toast.LENGTH_LONG).show(); return true; } return false; } }); 

编辑:

那么它是在Android 2.3.3上工作,而不是在4.1.2上工作任何想法如何使这个工作在任何Android设备?

Solutions Collecting From Web of "OnEditorActionListener无法正常工作"

请尝试在单行模式下设置EditText

 editText.setSingleLine(); 

或者在你的xml布局文件中:

 android:singleLine="true" 

UPDATE

android:singleLine="true"已被弃用。 从现在起,使用android:maxLines="1"android:inputType="text"来实现这种行为

 editText.setMaxLines(1); editText.setInputType(InputType.TYPE_CLASS_TEXT); 

以编程方式进行设置。

 myEditText.setOnEditorActionListener(new OnEditorActionListener() { public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) { Toast.makeText(getApplicationContext(), "some key pressed", Toast.LENGTH_LONG) .show(); return false; } }); 

这个代码显示了我在编辑文本中input内容后按下的一些按键 。 但是我不知道你的代码有什么问题。

在xml中使用android:imeOptions="actionGo"actionDone不再响应onEditorAction

我的问题是,我已经在XML android:inputType="textMultiline" 。 当我删除textMultiline选项, EditorListener开始工作。