我正在创建一个提供聊天功能的应用。屏幕上有一个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中实现此功能?
答案 0 :(得分:5)
试试这个......这可能会有所帮助。
将EditText的输入设置为
youredittext.setInputType(EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE);
然后添加:
android:singleLine="false"
或
youredittext.setSingleLine(false);
同时转到Click Here
答案 1 :(得分:4)
在OnKeyListener
方法中,使用Enter
和Shift Enter
检查,并分别提供Send
和New 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;
}
}
});
只需尝试搜索代码以进行转移并输入
它可能有用。 玩得开心。