如何防止未启用的EditText弹出键盘

6

我的活动中有一个EditText,在用户点击屏幕上的编辑按钮之前,它应该是不可编辑的。

我已经使用了 edit.setEnabled(false),但仍然会出现一个键盘供用户使用,并且用户可以通过键盘向屏幕中的EditText添加值,尽管屏幕可能看起来有点灰暗。还需要做什么以防止在用户明确推动编辑按钮之前编辑EditText

谢谢, 史蒂夫

6个回答

28

注意,setEditable已被弃用。

你可以使用:

setInputType(EditorInfo.TYPE_CLASS_TEXT)

打开键盘。

setInputType(EditorInfo.TYPE_NULL)
关闭键盘。

@MoJo 可能是因为 barcodereader 最后一次出现是在 :Jun 13 '11 at 11:07 :) - Tiago Almeida
1
我仍然想要我的光标在那里,但不需要键盘 - 那么怎么办? - JohnyTex

2
为了使EditText只能写入,而不弹出键盘,我在.xml布局文件中使用以下两个命令。
        android:editable="false"
        android:inputType="none"

1

在 API 级别 21 中,EditText 添加了一个函数,即

editText.setShowSoftInputOnFocus(boolean show);

这正是你所需要的。

1
尝试在你的EditText上使用setEditable(false)。 当你想要让用户能够输入时,将它设回true。

我也找了一下,但我认为它没有setEditable,只有setEditableFactory... - barcodereader

1
在你的布局文件中,给EditText添加以下属性:

android:editable="false"


0
在你的Java文件中使用edittext.setInputType(0);。

好的,那只是禁用它。请讨论整个问题,你如何重新启用它。 - barcodereader
我审查的注释表明,将其设置回1并不会重新启用它。 - barcodereader

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接