我的目標是顯示/隱藏某個事件的屏幕軟鍵盤並截取來自該鍵盤的輸入。顯示沒有EditText的軟件鍵盤
我發現軟鍵盤可以顯示某些View類的後代,但我不需要在屏幕上顯示文本編輯小部件的任何可視化表示,只是以編程方式顯示帶輸入攔截的隱藏軟鍵盤的功能。
達到此目的的最佳方法是什麼?
我的目標是顯示/隱藏某個事件的屏幕軟鍵盤並截取來自該鍵盤的輸入。顯示沒有EditText的軟件鍵盤
我發現軟鍵盤可以顯示某些View類的後代,但我不需要在屏幕上顯示文本編輯小部件的任何可視化表示,只是以編程方式顯示帶輸入攔截的隱藏軟鍵盤的功能。
達到此目的的最佳方法是什麼?
您可以強制Softkeyboard通過使用顯示:
InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.showSoftInput(myView, InputMethodManager.SHOW_FORCED);
,並隱藏:
((InputMethodManager) YourActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(findViewById(R.id.YOUR_VIEW).getWindowToken(), 0);
即使這個問題幾乎在一年前問它沒有一個公認的和充分有用的答案,因爲我自己遇到了同樣的問題我雖然我會分享我的解決方案:
由於Vikram指出這是顯示軟輸入的方式:
InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.showSoftInput(myView, InputMethodManager.SHOW_FORCED);
但還必須設置您的視圖可聚焦和可聚焦聯繫方式:
myView.setFocusable(true);
myView.setFocusableInTouchMode(true);
或在您的視圖XML:
android:focusable = "true"
android:focusableInTouchMode = "true"
其實,你可以always
秀清單中的軟鍵盤輸入。該行添加到您想要顯示的軟鍵盤每個活動:
android:windowSoftInputMode="stateAlwaysVisible"
軟鍵盤將顯示,無論是否有在視圖中沒有的EditText。 示例:
<activity android:name=".ChatActivity"
android:windowSoftInputMode="stateAlwaysVisible">
</activity>
此方法無效。 showSoftInput返回false,並且沒有顯示鍵盤 – Nekuromento 2012-02-17 09:38:34
它應該可以工作,但是你可以嘗試下面一行: im.showSoftInput(this,InputMethodManager.SHOW_IMPLICIT); – Vikram 2012-02-17 10:48:11