以编程方式为我的应用禁用键盘

时间:2017-12-29 10:01:30

标签: android keyboard

我想为我的整个应用程序禁用键盘,即键盘不得出现在我的应用程序的任何阶段,我的应用程序包含WebView以及我在此时加载的输入字段我不会&#39 ; t想要android键盘,因为该页面本身包含单击输入字段时打开的键盘。我所知道的是

InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);     
inputManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

但是当我点击edittext键盘时,使用此代码打开。

4 个答案:

答案 0 :(得分:1)

为你的xml代码(EditText)添加focusable:false,它将完成工作

答案 1 :(得分:0)

禁用above API 11,如下所示

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // API 21
    editText.setShowSoftInputOnFocus(false);
} else { // API 11-20
    editText.setTextIsSelectable(true);
}

答案 2 :(得分:0)

androidManifest.xml中将此行放在activity android:windowSoftInputMode="stateAlwaysHidden"

喜欢这个

<activity
     android:name="com.app.thumbpin.activity.HomeActivity"
     android:windowSoftInputMode="stateAlwaysHidden" />

并在每个EditText android:focusable="false"中使用,如下所示

<EditText
        android:id="@+id/EditTextInput"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:focusable="false"
        android:gravity="right"
        android:cursorVisible="true">
    </EditText>

以参数方式隐藏键盘

((InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(editText.getWindowToken(), 0);

在xml中:

在根布局标记中写android:descendantFocusability="blocksDescendants"

答案 3 :(得分:0)

尝试,

创建自己的扩展EditText的类并覆盖onCheckIsTextEditor()

public class CustomEditText extends EditText {
    public NoImeEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    @Override
    public boolean onCheckIsTextEditor() {
        return false;
    }
}

在布局XML中,使用对自定义控件的完全限定引用,而不是EditText:

<com.yourpackge.path.CustomEditText
              ........
    enter code here

           .....................
/> 

它将禁用所有EditText的软键盘焦点。