1

我创建了一个带有多行编辑文本字段的对话框。问题是软键盘的 [ENTER] 键正在关闭键盘而不是创建新行。使用 imeOptions,可以配置很多,但不能配置换行命令......我该如何完成这个?

为带有 Android 4.0.3 的 Galaxy Tab 2 构建。

4

2 回答 2

4

我发现将 EditText的原始输入类型设置为多行在“正常”输入类型不适用的情况下工作。

final EditText remark = new EditText(MyClass.this);    
remark.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);

这为我做到了。

于 2013-10-23T13:35:16.383 回答
0

您可以通过创建一个新的 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

于 2013-10-16T12:56:18.770 回答