在Jelly Bean模拟器上按下Enter键后,不调用onEditorAction()

我遇到了最新的Jelly Bean模拟器的行为问题。 我的应用程序中有几个EditTexts 。 当用户按下键盘上的ENTER键时, OnEditorActionListener提供特殊处理。 这一直到ICS,但现在在Jelly Bean上,监听器回调方法onEditorAction()不再被调用。 只有一个新行插入EditText

这可以通过这种方式复制:

 EditText testEditText = new EditText(context); testEditText.setOnEditorActionListener(new OnEditorActionListener() { public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { Log.d(TAG, "onEditorAction() called"); return false; } }); addView(testEditText); 

这是Jelly Bean中的一个错误吗? 还是在模拟器中? 或者是否有意改变了行为?

奇怪的是,其他人写道,该方法被调用,但带有意外的参数,在这里运行Jelly Bean的Nexus 7: onEditorAction()中的null keyevent和actionid = 0(Jelly Bean / Nexus 7)

Solutions Collecting From Web of "在Jelly Bean模拟器上按下Enter键后,不调用onEditorAction()"

如果其他人发现了这个问题:

我已经多次测试过,在Jelly Bean模拟器上,当在虚拟键盘上按下Enter键时,侦听器回调方法onEditorAction()确实不再被调用。

如上所述,可能的解决方案或解决方法是使用其中一个可用操作键替换Enter键。 那些仍然触发onEditorAction()。 我还必须指定输入types。

 editText.setRawInputType(InputType.TYPE_CLASS_TEXT); editText.setImeOptions(EditorInfo.IME_ACTION_GO);