代码之家  ›  专栏  ›  技术社区  ›  JohnnyLambada

如何阻止android软键盘出现在我的整个应用程序中

  •  3
  • JohnnyLambada  · 技术社区  · 15 年前

    another SO question 给出了以下代码行:

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

    但我不知道该把这个代码放在哪里,以便在我的活动中可能出现的所有地方隐藏软键盘。我试着把代码添加到 Activity.onUserInteraction 无济于事。好像键盘出现了 之后 这个 onUserInteraction 执行。

    我还试着把以下内容添加到我的 <Activity> :

    <activity 
        android:windowSoftInputMode="stateAlwaysHidden"
    >
    

    软键盘仍然出现。

    5 回复  |  直到 8 年前
        1
  •  5
  •   CommonsWare    15 年前

    你的申请不应该做任何事。该设备的固件应该包含一个基于硬件键盘可见而禁止软键盘的配置,就像其他所有有硬件键盘的Android设备一样。如果这种情况没有发生,请与硬件制造商联系,看看他们是否计划解决这个问题。

        2
  •  2
  •   Macarse    15 年前

    我会用空视图创建一个新的IME。这里有两个开源项目供您查看一些代码。

    如果您想了解有关输入法的更多信息,请转到 Creating an input method .

        3
  •  2
  •   dnaq    14 年前

    如果EditText的inputType为0,则选中该EditText时,软键盘将不会弹出。

    EditText editText = findViewById(R.id.edit_text);
    editText.setInputType(0);

    设置xmlinputtype参数将不起作用,因为这对应于对setRawInputType方法的调用,该方法不会删除keylister。

        4
  •  2
  •   rshmelev    14 年前

    @Override
    public boolean onCheckIsTextEditor() {
        return false;
    }
    
        5
  •  0
  •   ASP    12 年前

    如果你曾经编辑过文本,把这个代码。。

    edittext.setInputType(InputType.TYPE_NULL);      
    if (android.os.Build.VERSION.SDK_INT >= 11)   
    {  
        edittext.setRawInputType(InputType.TYPE_CLASS_TEXT);  
        edittext.setTextIsSelectable(true);  
    }