【问题标题】:Default soft keyboard does not hide in Nexus tab or Virtual Machine默认软键盘不会隐藏在 Nexus 选项卡或虚拟机中
【发布时间】:2015-03-29 14:11:25
【问题描述】:

我正在开发一个应用程序,我在我的应用程序中使用自定义键盘进行用户输入。问题是当我在 Nexus Tab 或 Virtual Box 虚拟机上运行我的应用程序时,默认软键盘不会隐藏。它甚至不会在 Tab 和 VM 上弹出我的自定义软键盘,但是当我在 Android 手机上运行该应用程序时,它运行良好。我正在使用以下代码隐藏默认软键盘:

public static void hideKeyboard(Context context, View v) {

        try {
            Log.v("hideKeyboard", "Inside hideKeyboard");
            InputMethodManager inputManager = (InputMethodManager) context
                    .getSystemService(Context.INPUT_METHOD_SERVICE);
            Log.v("hideKeyboard", "InputMethodManager created");
            View view = ((Activity) context).getCurrentFocus();

            if (view != null) {
                Log.v("View found:", "nn");
                inputManager.hideSoftInputFromWindow(view.getWindowToken(),
                        InputMethodManager.HIDE_IMPLICIT_ONLY);
                Log.v("HIDE_NOT_ALWAYS:", "nn");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
  • 我什至在这个论坛上搜索过很多类似的问题,甚至 尝试了大多数这些解决方案,但这并没有帮助。任何想法 为什么这适用于手机,不适用于 Nexus Tab 和 Virtual 机器????

【问题讨论】:

    标签: android keyboard android-softkeyboard


    【解决方案1】:

    试试这个代码,这可能有效,因为它与我的虚拟机完美配合

    public static void hideKeypad(Activity activity)
    {
    try
    {
        InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
        // imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); //
        // hide
        imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
    } catch (Exception e)
    {
        e.printStackTrace();
    }
    
    }
    

    【讨论】:

      【解决方案2】:

      调用如下方法 hideKeyboard(getApplicationContext(), editText.getWindowToken())。

      public void hideKeyboard(Context c, IBinder windowToken) {
          InputMethodManager mgr = (InputMethodManager) c
                  .getSystemService(Context.INPUT_METHOD_SERVICE);
          mgr.hideSoftInputFromWindow(windowToken, 0);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多