2012-06-11 51 views
2

我的Android應用程序中有一個WebView,它給我一個問題。起初,沒有正確處理keyDown事件爲方向鍵,我不得不趕上KeyDown和使用JavaScript這樣正確地處理它們:Android:爲什麼我的軟鍵盤在這些關鍵事件之後隱藏?

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    Log.v(TAG, "KeyCode: " + keyCode + " KeyEvent: " + event); 
    switch(keyCode) { 
    case 19: /* Up */ 
     this.loadUrl("javascript:editor.setCursor(editor.getCursor().line - 1, editor.getCursor().ch);"); 
    case 20: /* Down */ 
     this.loadUrl("javascript:editor.setCursor(editor.getCursor().line + 1, editor.getCursor().ch);"); 
    case 21: /* Left */ 
     this.loadUrl("javascript:editor.setCursor(editor.getCursor().line, editor.getCursor().ch - 1);"); 
    case 22: /* Right */ 
     this.loadUrl("javascript:editor.setCursor(editor.getCursor().line, editor.getCursor().ch + 1);"); 
    } 
    return super.onKeyDown(keyCode, event); 
} 

但現在我得到我每次使用問題軟鍵盤隱藏的其中一個箭頭鍵。

我發現這裏#2另外一個問題,這似乎是完全一樣的問題,但沒有人回答他:

Prevent Buttons From Hiding Soft Keyboard On Android

有一些辦法可以防止softkeyboard在躲我?

+0

你可以嘗試使用返回false而不是返回super.onKeyDown(keyCode,event); ? – roim

+0

@rOim我試過返回false,但仍然關閉了鍵盤。 –

+1

[這](http://stackoverflow.com/questions/10522727/android-soft-keyboard-will-hide-for-no-reason)是周圍的工作和你的問題的原因。 –

回答

0

由於loadUrl/loadData/loadDataWithBaseUrl內部隱藏了軟鍵盤。在用戶輸入他想要的所有內容之前,您不應該發送javascript事件。如果合適的話,通過javascript處理事件。