如何在 Android 中禁用 EditText
Posted
技术标签:
【中文标题】如何在 Android 中禁用 EditText【英文标题】:How to disable EditText in Android 【发布时间】:2011-08-18 06:23:03 【问题描述】:如何禁止在 android 中输入 EditText
字段?
【问题讨论】:
在 EditText 输入时禁用键盘? 有两个 editText 字段。第一个用于输入电子邮件。如果电子邮件有效,则启用第二个 editText 字段。但问题是在输入无效电子邮件并单击下一步按钮时在软键盘上,它转到第二个文本字段并且可以输入数据,即使我已经进行了 edittext.setEnabled(false)。我使用的是 android 2.3.1 【参考方案1】:假设editText
是你EditText
对象:
editText.setEnabled(false);
【讨论】:
【参考方案2】:在代码中:
editText.setEnabled(false);
或者,在 XML 中:
android:editable="false"
【讨论】:
【参考方案3】:在 android 中禁用编辑文本:
editText.setEnabled(false);
【讨论】:
【参考方案4】:如果你想显示编辑文本但不输入任何值,你可以写edittext.setInputType(0)
【讨论】:
【参考方案5】:下面的代码在android中禁用了EditText
editText.setEnabled(false);
【讨论】:
只需将edittext 的focusable 属性设置为“false”即可。我认为它是 android 中的一个错误。它可以通过添加此补丁来修复 :) 检查这些链接 question 1 和 question 2
希望对你有用。
【讨论】:
对于那些宁愿在此处查看代码而不是使用超链接的人:editText.setEnabled(false);
,结合editText.setFocusable(false);
将实现此目的。
同样适用于 XML:android:enabled="false"
和 android:focusable="false"
。谢谢大家!【参考方案7】:
您可以使用EditText.setFocusable(false)
禁用编辑EditText.setFocusableInTouchMode(true)
启用编辑;
【讨论】:
这是我的问题。我认为在setFocusable(false)
之后我可以翻转 setFocusable(true)... 不是这样的。设置setFocusableInTouchMode(true)
对我有用。【参考方案8】:
edittext.setFocusable(false);
edittext.setEnabled(false);
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
//removes on screen keyboard
【讨论】:
【参考方案9】:把这个写在父级中:
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
例子:
<RelativeLayout
android:id="@+id/menu_2_zawezanie_rl"
android:layout_
android:layout_
android:layout_below="@+id/menu_2_horizontalScrollView"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:orientation="horizontal"
android:background="@drawable/rame">
<EditText
android:id="@+id/menu2_et"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/menu2_ibtn"
android:gravity="center"
android:hint="@string/filtruj" >
</EditText>
<ImageButton
android:id="@+id/menu2_ibtn"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:background="@null"
android:src="@drawable/selector_btn" />
【讨论】:
【参考方案10】:据我说...如果您已经在 XML 文件中声明了 edittext
并在 XML 文件中设置属性 "android:enabled=false"
并在运行时禁用它,当时在 java 文件中只添加 2 或 3线条
-
首先创建对象
声明 EditText et1;
通过 id 获取
et1 = (EditText) FindViewById(R.id.edittext1);
et1.setEnabled(false);
您可以在运行时通过 java 文件启用或禁用每个控件,在设计时通过 XML 文件启用或禁用。
【讨论】:
【参考方案11】:只需将 edittext 的可聚焦属性设置为“false”即可。
<EditText
android:id="@+id/EditTextInput"
android:layout_
android:layout_
android:focusable="false"
android:gravity="right"
android:cursorVisible="true">
</EditText>
以下选项不起作用
在代码中:
editText.setEnabled(false);
或者,在 XML 中:
android:editable="false"
【讨论】:
【参考方案12】:你可以试试下面的方法:
private void disableEditText(EditText editText)
editText.setFocusable(false);
editText.setEnabled(false);
editText.setCursorVisible(false);
editText.setKeyListener(null);
editText.setBackgroundColor(Color.TRANSPARENT);
启用编辑文本:
禁用编辑文本:
它对我有用,希望对你有帮助。
【讨论】:
很好的答案,但可以通过删除正在更改背景颜色的行并添加 editText.setKeyListener(null); 来改进它;【参考方案13】:Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);
【讨论】:
【参考方案14】:启用:
private void enableEditText()
mEditText.setFocusableInTouchMode(true);
mEditText.setFocusable(true);
mEditText.setEnabled(true);
禁用:
private void disableEditText()
mEditText.setEnabled(false);
mEditText.setFocusable(false);
mEditText.setFocusableInTouchMode(false);
【讨论】:
【参考方案15】:XML editable
属性自 API LEVEL 15 以来已被弃用。
您现在应该使用值为none
的inputType
属性。
但是有一个错误使此功能无用。
Here你可以关注问题状态。
【讨论】:
【参考方案16】:右键单击文本区域并取消勾选可编辑选项:
【讨论】:
欢迎来到 Stack Overflow,Nuwan Bandara。您的答案与 JTextArea 相关,而不是来自 Android Framework 的 EditText。您不太可能为这个问题提供答案。【参考方案17】:在 EditText 下的 layout.xml 文件中将 inputType
属性设置为 none
【讨论】:
这个什么都不做【参考方案18】:试试这个 Kotlin 代码,
editField.isEnabled = !editField.isEnabled
【讨论】:
以上是关于如何在 Android 中禁用 EditText的主要内容,如果未能解决你的问题,请参考以下文章
Android:如何在 Edittext 中完全禁用复制和粘贴功能
如何在 EditText Android 中禁用退格行为?