5

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

<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

4 回答 4

5

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

将 EditText 的输入设置为

youredittext.setInputType(EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE);

然后加:

android:singleLine="false"

或者

youredittext.setSingleLine(false);

也去点击这里

于 2012-11-02T07:06:31.373 回答
4

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

于 2012-11-02T06:26:53.780 回答
1

在搜索您的解决方案时,我得到了这个链接。试试吧,它可能会解决你的问题。

如果你有其他最好的方法请发布,这是非常有用和好问题..,。

谢谢..,。

编辑......................

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

于 2012-11-02T06:54:59.493 回答
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;
    }
}
});

只需尝试搜索移位代码并输入

它可能有效。玩得开心。

于 2012-11-02T06:47:27.670 回答