2014-09-04 41 views
0

Android的軟鍵盤從上下文菜單中通過爲什麼Android的軟鍵盤關閉,當我按「Enter」(而不是讓一個換行符)

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 

這類型的文本精細切換,但是當輸入爲按下,鍵盤關閉。 onKeyDown(int keyCode, KeyEvent event)

這個佈局看起來像this

附加信息:對於那些想知道的,鍵盤輸入是通過TCP連接發送的,而不是佈局中的任何視圖。

回答

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()這就是爲什麼如果它不是回車鍵返回super.dispatchKeyEvent(ke);是很重要的。

0

檢查你的XML可能是你設置MAXLINE = 1或可給SINGLELINE =「真」

+0

佈局中沒有EditText。鍵盤不會在任何地方插入文本(我正在使用按鍵來進行其他操作)。已通過指向佈局的鏈接更新了問題。謝謝回覆! – Jaywaa 2014-09-04 11:25:22