【问题标题】:How to hide only soft keyboard android如何仅隐藏软键盘android
【发布时间】:2013-03-22 11:29:39
【问题描述】:

在我的应用程序中,我正在使用选项卡活动和活动组。在其中一项活动中,我编辑了文本。当用户点击编辑文本时,出现软键盘。但是当用户单击后退按钮时,软键盘会消失,并且会出现活动堆栈上的前一个活动。

之前在其他应用程序上,当我在屏幕上有软键盘时按下后退按钮时,只有软键盘关闭,除非我再次按下后退按钮,否则它不会返回上一个活动。我希望这也发生在我当前的应用程序中。请帮忙。

【问题讨论】:

  • 您使用的是哪种设备?
  • @PrafulBhatnagar htc 野火 s
  • 你运行的 android 版本是什么...这种行为是否与设备上的其他应用程序一致.. 你可以在其他应用程序中检查这一点,只要确保 HTC 没有搞砸这个.. .
  • 我使用的是安卓 2.3。雅在其他应用程序中工作正常。我认为这可能是由于活动组或选项卡活动。但我仍然无法找到根本原因。

标签: android android-softkeyboard activitygroup android-tabactivity


【解决方案1】:

在您的 On create 方法中使用以下内容。它工作正常。

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

【讨论】:

    【解决方案2】:

    可以试试这个- **

    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                                      imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
    

    **

    【讨论】:

      【解决方案3】:
       InputMethodManager imm = (InputMethodManager) 
                    this.getSystemService(Context.INPUT_METHOD_SERVICE);
      
              if (imm.isAcceptingText()) {
      
                  System.out.println("Software Keyboard was shown");
      
              } else {
      
                   System.out.println("Software Keyboard is hidden");
      
                   }  
      

      这可以解决问题。我检查了软键盘板是否打开它停留在当前活动,否则它转到以前的活动。

      【讨论】:

        【解决方案4】:

        代码

        InputMethodManager imm = (InputMethodManager)getSystemService(
          Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
        

        也检查下面的链接:-

        http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange

        http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html

        【讨论】:

          【解决方案5】:

          我想这会对你有所帮助

          protected void hideSoftKeyboard(EditText input) {
                  input.setInputType(0);
                  InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                  imm.hideSoftInputFromWindow(input.getWindowToken(), 0);
          
              }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-12-14
            • 2011-12-24
            • 2023-01-09
            • 2014-04-07
            • 1970-01-01
            • 1970-01-01
            • 2012-02-18
            • 2011-02-17
            相关资源
            最近更新 更多