2013-06-26 69 views
0

我已經通過擴展Dialog類創建了自定義對話框。自定義對話框不允許鍵盤解僱

在我的應用程序中,我有一個EditText,並且用戶在操作欄完成後按下ok,所以鍵盤已打開。然後一個CustomDialog說一切正常,然後點擊我像這樣關閉鍵盤

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0); 

但鍵盤仍然亮着。如果我創建一個構建器,並執行相同的鍵盤隱藏。另一個線索是edittext的inputType是數字,但是當對話框出現時,它變成了文本。

謝謝你的任何意見或想法。

回答

0

必須在costructor

getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); 

通常你會希望有對當前輸入法之上的對話框顯示添加以下代碼,因爲沒有理由爲它接受文本。您可以通過設置WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM窗口標誌(假設你的對話框需要輸入的焦點,因爲它默認的)用下面的代碼做到這一點:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, 
    WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); 

還發現here