禁用弹出键盘android-studio

时间:2017-12-27 15:25:44

标签: android android-layout

我在android studio上开发的项目中有一个EdiText

android:id="@+id/Number"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:textSize="24dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"

当我点击编辑文本时,我需要找到一种禁用键盘的方法,这意味着当我点击EditText时键盘不应该打开。

5 个答案:

答案 0 :(得分:4)

禁用它。

EditText et = (EditText) findViewById(R.id.edittext);
et.setEnabled(false);

OR

在xml中添加android:inputType="none"

答案 1 :(得分:2)

在你的代码中,你需要以这种方式编程:为InputMethodManager声明一个全局变量:

 private InputMethodManager im ;

onCreate() 方法中定义它:

im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(youredittext.getWindowToken(), 0);

onClickListener 设置为 onCreate() 内的编辑文字:

youredittext.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        im.showSoftInput(youredittext, InputMethodManager.SHOW_IMPLICIT);
    }
});

这样可行。

答案 2 :(得分:2)

这样做

final EditText editText = findViewById(R.id.Number);
        editText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
            }
        });

答案 3 :(得分:2)

你走了。

public static void disableSoftInputFromAppearing(EditText editText) {
    if (Build.VERSION.SDK_INT >= 11) {
        editText.setRawInputType(InputType.TYPE_CLASS_TEXT);
        editText.setTextIsSelectable(true);
    } else {
        editText.setRawInputType(InputType.TYPE_NULL);
        editText.setFocusable(true);
    }
}

答案 4 :(得分:0)

如果您想阻止用户编辑文本,那么您可以在edittext

中使用android:enabled="false"属性