【问题标题】:how to hide the virtual keyboard如何隐藏虚拟键盘
【发布时间】:2010-12-31 23:19:01
【问题描述】:

我不想显示虚拟键盘。

我尝试了以下方法,但没有任何区别。

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

enter_count 是我的编辑文本 我已经尝试阅读 InputMethod Manager 但无法遵循它。

我可以将我的编辑文本的输入类型设置为 enter_count,如下所示

enter_count.setInputType( InputType.TYPE_NULL );

但是我不能指定只接受数字输入

您能否给我一个合理的解决方案,让我不显示虚拟键盘,而不会失去在物理键盘上仅接受数字输入的能力。

【问题讨论】:

    标签: android keyboard virtual hide


    【解决方案1】:

    这个怎么样?

    EditText editText = (EditText) findViewById(R.id.edt_hello);
    
    editText.setKeyListener(new NumberKeyListener() {
    
        @Override
        public int getInputType() {
            return InputType.TYPE_NULL;
        }
    
        @Override
        protected char[] getAcceptedChars() {
            return new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
        }
    });
    

    【讨论】:

      【解决方案2】:

      你必须在你的 AndroidManifest.xml 文件中使用它

      所以添加

      android:configChanges="orientation|keyboardHidden"

      但是,您的键盘将始终隐藏在该 Activity 中。

      沃特

      【讨论】:

      • 我尝试了你的建议和 android:configChanges="keyboardHidden" 但都没有任何区别
      【解决方案3】:

      您是否尝试将其添加到清单的 Activity 标记中? android:windowSoftInputMode="stateHidden"

      【讨论】:

        【解决方案4】:

        将此添加到您的SendData() 函数中

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

        或者使用这个

        InputMethodManager.RESULT_UNCHANGED_SHOWN);
        imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
        

        这项工作:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-21
          • 1970-01-01
          相关资源
          最近更新 更多