如何以编程方式closuresAndroid软键盘?
我目前使用下面的代码显示softkeyboard
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.RESULT_HIDDEN);
在这里,我没有绑定与Edittext软键盘,因为我已经使用了上述代码。
现在我想closuresSoftKeyboard,所以我目前使用下面的代码,但它不工作。
imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.RESULT_HIDDEN);
任何人都可以build议我用什么来closuressoftKeyboard?
基于下面的答案我想让你清楚,我没有使用EditText,我使用布局,我想显示键盘和隐藏键盘。 我想发送键盘按键事件远程区域bcoz我没有使用editText。
我已经testing,这是工作:
... //to show soft keyboard imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); //to hide it, call the method again imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
顺便说一下,你的代码的第二个参数是不正确的,请看看这里 。
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); } } }
user942821的隐藏它的答案工作:
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
但是这也适用于我隐藏它:
imm.toggleSoftInput(0, 0);
您可能还想尝试:
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
当在第一个参数中使用“0”时,有时候在奇怪的情况下,键盘会在错误的地方切换,我还没有弄清楚如何复制。 我仍在testing这个最后一个例子,但是当我发现更多的时候会更新。
有关更多信息,请参阅toggleSoftInput文档页面 。
这工作正常
InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); keyboard.hideSoftInputFromWindow(getWindow().getAttributes().token, 0);
closures/隐藏Android软键盘
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..
打开Android软键盘
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (inputMethodManager != null) { inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); }
你也可以试试
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
这是解决scheme,它检查键盘是否可见
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);
为了隐藏键盘,
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mView.getWindowToken(), 0);
在这里,“mView”可以是在屏幕上可见的任何视图
此代码隐藏在AutoCompleteTextView
onItemClick
内部的键盘
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); }
private void close() { this.requestHideSelf(0); }
这个方法很简单