【发布时间】:2012-07-03 22:28:57
【问题描述】:
我对最新的 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 的 Nexus 7 上调用了该方法,但带有意外参数:null keyevent and actionid = 0 in onEditorAction() (Jelly Bean / Nexus 7)
【问题讨论】:
-
@CommonsWare:谢谢,我在您的代码中找到了解决问题的方法。如果我执行以下操作,则 ENTER 键与虚拟键盘上的 GO 键交换,这会触发 onEditorAction():editText.setRawInputType(InputType.TYPE_CLASS_TEXT); editText.setImeOptions(EditorInfo.IME_ACTION_GO);
-
或者在 XML 中:android:imeOptions="actionGo" android:inputType="text"
标签: android android-edittext avd android-4.2-jelly-bean