通过
从上下文菜单切换android软键盘InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
它可以很好地输入文字,但按下Enter键后,键盘会关闭。 onKeyDown(int keyCode, KeyEvent event)
布局看起来像this。
额外信息:对于那些想知道的人,键盘输入是通过TCP连接发送的,而不是布局中的任何视图。
答案 0 :(得分:0)
检查你的xml可能是你设置maxline = 1或者可能是给singleLine =" true"
答案 1 :(得分:0)
好吧所以这个问题没有引起注意,但是我会把我的解决方案放在这里以防其他人遇到这个问题。
出于某种原因,Android决定在输入文本后(没有EditText),Enter键现在是一个操作按钮,而不是换行符。
我设法通过接收dispatchKeyEvent()
而不是onKeyPress()
@Override
public boolean dispatchKeyEvent(KeyEvent ke)
{
int unicode = ke.getUnicodeChar();
if (ke.getAction() == 0 && ke.getKeyCode() == KeyEvent.KEYCODE_ENTER) // getAction() returns 1 (up) or 0 (down).
{
// do my work here
return true; // end here (doesn't go to onKeyDown())
} else
return super.dispatchKeyEvent(ke);
}
此事件在按键时触发两次,因此在if语句中使用getAction()非常重要。对于所有其他键盘按下,我使用了onKeyDown(),这就是为什么如果它不是Enter键则返回super.dispatchKeyEvent(ke);
很重要。