2014-11-25 85 views
1

我有一個包含EditText(inputType="number")的對話框。對話框關閉後,我想隱藏鍵盤,如果對話框的EditText在某個時刻處於Focus狀態,則會打開該鍵盤。關閉三星設備上的對話框後的軟鍵盤

現在的事情是,我有一個可行的方法(至少在一些Nexus設備上),除了三星設備(至少S2,S3)。

final InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
inputManager.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 

在其他設備上,鍵盤(僅限數字)在對話框後關閉。 在三星設備的鍵盤只是改變與所有的字母鍵盤(inputType="text"),而不是鍵盤inputType="numbers"。我希望它關閉/隱藏代替。

我不能爲活動做類似 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN) 在後臺,因爲我需要一個鍵盤有作爲。

有誰知道如何處理這個三星特定問題?

回答

4

使用此代碼

InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 
+1

哇!這工作,答案來得非常快,非常感謝你!我搜查了很多,每個人都提出了相同的答案,但沒有成功。我必須等待3分鐘,然後我可以將這個答案標記爲正確:) – angor 2014-11-25 09:59:48

1

我沒有三星設備來測試我的代碼,但我使用EditText中的WindowToken來隱藏SoftKeyboard。 我的代碼看起來是這樣的:

InputMethodManager iM = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
iM.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); 

希望工程:)

+0

我也試過這個,hideSoftInputFromWindow在我的上下文中不會像它應該那樣工作。謝謝回答! – angor 2014-11-25 10:04:44