如何故意在EditText中转到新行?

时间:2012-11-02 06:20:24

标签: android android-edittext

我正在创建一个提供聊天功能的应用。屏幕上有一个EditText,我在其上设置了OnKeyListener。每当用户在键入消息后按下“Enter”键,消息就会在屏幕上显示。它工作正常。这是我的EditText:

<EditText android:id="@+id/chatMessageField"
    android:layout_height="wrap_content" android:layout_width="fill_parent"
    android:layout_gravity="center_horizontal|center_vertical"
    android:layout_marginRight="5dip" android:layout_marginLeft="5dip"
    android:maxLines="2" android:minLines="1" android:scrollbars="vertical"
    android:hint="@string/chatMessageHintText" android:textColorHint="#3b64a8">
</EditText>

问题是当用户想要在EditText包装文本并转到新行之前转到新行。现在,如果用户想要转到新行并按“Enter”键,则会发送消息。

在一些聊天消息中,我看到按下“Shift + Enter”(或任何其他键组合)同时将用户带到新行。我们如何检测Android中同时按下的“Shift + Enter”(或任何其他键组合)键?有没有办法在Android中实现此功能?

4 个答案:

答案 0 :(得分:5)

试试这个......这可能会有所帮助。

将EditText的输入设置为

youredittext.setInputType(EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE);

然后添加:

android:singleLine="false"

youredittext.setSingleLine(false);

同时转到Click Here

答案 1 :(得分:4)

OnKeyListener方法中,使用EnterShift Enter检查,并分别提供SendNew Line的单独功能。

答案 2 :(得分:1)

在搜索解决方案时,我收到了this个链接。试试它可以解决你的问题。

如果你有其他最好的方式请发帖,这是非常有用的好问题..,

谢谢..,

EDIT ......................

另请参阅this链接以更好地使用自定义快捷方式..,。

答案 3 :(得分:0)

在这里你可以设置'OnKeyListener'方法。对于每个键,您可以提供如下功能..

editText.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
    switch(keyCode) {
        case KeyEvent.KEYCODE_0:
            //handle code for pressing 0
            break;
        case KeyEvent.KEYCODE_1
            //handles code for pressing 1
        default:
            break;
    }
}
});

只需尝试搜索代码以进行转移并输入

它可能有用。 玩得开心。