我创建了一个带有多行编辑文本字段的对话框。问题是软键盘的 [ENTER] 键正在关闭键盘而不是创建新行。使用 imeOptions,可以配置很多,但不能配置换行命令......我该如何完成这个?
为带有 Android 4.0.3 的 Galaxy Tab 2 构建。
我创建了一个带有多行编辑文本字段的对话框。问题是软键盘的 [ENTER] 键正在关闭键盘而不是创建新行。使用 imeOptions,可以配置很多,但不能配置换行命令......我该如何完成这个?
为带有 Android 4.0.3 的 Galaxy Tab 2 构建。
我发现将 EditText的原始输入类型设置为多行在“正常”输入类型不适用的情况下工作。
final EditText remark = new EditText(MyClass.this);
remark.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
这为我做到了。
您可以通过创建一个新的 TextWatcher 来完成此操作。将此文本观察器注册到您的 EditText 并在收到返回键时实现断线。
编辑:
要处理单个按键,请根据需要实现 onKeyDown() 或 onKeyUp()。通常,如果您想确保只收到一个事件,您应该使用 onKeyUp()。如果用户按住按钮,则会多次调用 onKeyDown()。
例如:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER:
/* This is a sample for handling the Enter button */
return true
default:
return super.onKeyUp(keyCode, event);
}
}
来源:
安卓 :
http://developer.android.com/training/keyboard-input/commands.html
关键事件列表:
http://developer.android.com/reference/android/view/KeyEvent.html