現在、次のコードを使用してソフトキーボードを表示しています
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.RESULT_HIDDEN);
ここでは、上記のコードを使用したため、ソフトキーボードをEdittextにバインドしません。
今、SoftKeyboardを閉じたいので、現在以下のコードを使用していますが、機能していません。
imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.RESULT_HIDDEN);
誰でもsoftKeyboardを閉じるために何を使用するかを提案できますか?
以下の回答に基づいて、EditTextを使用していないことを明確にしたいので、キーボードを表示し、キーボードを非表示にするレイアウトを使用します。 editTextを使用しなかったリモートエリアbcozにキーボードキーイベントを送信したい。
私はテストしましたが、これは機能しています:
...
//to show soft keyboard
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
//to hide it, call the method again
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
ところで、コードの2番目のパラメーターは正しくありません。 here をご覧ください。
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(EditTextName.getWindowToken(), 0);
この作業コードを使用してください:
InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
必要に応じて、クラス全体を使用して、KeyboardUtil.hideKeyBoard(context)メソッドをどこでも呼び出すことができます:
public class KeyboardUtil
{
public static void hideKeyboard(Activity activity)
{
try
{
InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
catch (Exception e)
{
// Ignore exceptions if any
Log.e("KeyBoardUtil", e.toString(), e);
}
}
}
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
it's working for me i hope it's work for you..
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputMethodManager != null) {
inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}
それを隠すためのuser942821の答え:
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
しかし、これは私がそれを隠すのにも役立ちます:
imm.toggleSoftInput(0, 0);
あなたも試してみたいかもしれません:
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
最初のパラメータで「0」を使用すると、奇妙な状況下でキーボードが間違った場所でオンになることがありますが、まだ複製する方法がわかりません。私はまだこの最後の例をテストしていますが、詳細がわかり次第更新します。
詳細については、 toggleSoftInputドキュメントページ を参照してください。
これはうまくいきます
InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.hideSoftInputFromWindow(getWindow().getAttributes().token, 0);
キーボードが表示されているかどうかを確認するソリューションがあります
public static void hideKeyboard(Activity activity) {
if (isKeyboardVisible(activity)) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
}
}
public static boolean isKeyboardVisible(Activity activity) {
///This method is based on the one described at http://stackoverflow.com/questions/4745988/how-do-i-detect-if-software-keyboard-is-visible-on-Android-device
Rect r = new Rect();
View contentView = activity.findViewById(Android.R.id.content);
contentView.getWindowVisibleDisplayFrame(r);
int screenHeight = contentView.getRootView().getHeight();
int keypadHeight = screenHeight - r.bottom;
return
(keypadHeight > screenHeight * 0.15);
}
InputMethodManager im =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
im.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
また試すことができます
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
キーボードを隠すには、
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mView.getWindowToken(), 0);
ここで、「mView」は、画面に表示される任意のビューです
このコードは、onItemClick
のAutoCompleteTextView
からキーボードを隠します
public void onItemClick(AdapterView<?> adapterViewIn, View viewIn, int indexSelected, long arg3) {
// whatever your code does
InputMethodManager imm = (InputMethodManager) getSystemService(viewIn.getContext().INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(viewIn.getApplicationWindowToken(), 0);
}