Android [ENTER] - 对话框中多行edittext的键操作

时间:2013-10-16 12:41:37

标签: android android-edittext newline

我创建了一个带有多行edittext-field的对话框。问题是软键盘的[ENTER]键关闭键盘而不是创建新行。使用imeOptions,可以配置很多,但不能使用换行命令... 如何实现这一目标?

使用Android 4.0.3构建Galaxy Tab 2.

2 个答案:

答案 0 :(得分:3)

我发现将EditText的原始输入类型设置为多行工作,而“普通”输入类型不是。

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

这对我有用。

答案 1 :(得分:0)

您可以通过创建新的TextWatcher来实现此目的。将此textwatcher注册到EditText并在收到返回键时实现breakline。

编辑:

要处理单个按键,请根据需要实现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);
    }
}

来源:

Android:

http://developer.android.com/training/keyboard-input/commands.html

KeyEvents列表:

http://developer.android.com/reference/android/view/KeyEvent.html