85

如何EditText在 Android 中禁用在字段中输入?

4

18 回答 18

69

您可以使用EditText.setFocusable(false)禁用编辑
EditText.setFocusableInTouchMode(true)来启用编辑;

于 2012-02-06T07:24:49.033 回答
45

在代码中:

editText.setEnabled(false);

或者,在 XML 中:

android:editable="false"
于 2011-05-04T06:13:50.293 回答
43

我认为它是 android 中的一个错误。它可以通过添加这个补丁来修复:)
检查这些链接 问题 1问题 2

希望它会有用。

于 2011-05-04T07:01:23.840 回答
14

假设editTextEditText反对:

editText.setEnabled(false);
于 2011-05-04T06:12:10.287 回答
13

您可以尝试以下方法:

private void disableEditText(EditText editText) {
    editText.setFocusable(false);
    editText.setEnabled(false);
    editText.setCursorVisible(false);
    editText.setKeyListener(null);
    editText.setBackgroundColor(Color.TRANSPARENT); 
}

启用 EditText :

启用编辑文本

禁用 EditText :

禁用编辑文本

它对我有用,希望对你有帮助。

于 2015-04-03T14:19:07.910 回答
10

只需将 edittext 的可聚焦属性设置为“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>

以下选项不起作用

在代码中:

editText.setEnabled(false); 或者,在 XML 中: android:editable="false"

于 2014-11-25T11:31:28.343 回答
6
Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);
于 2017-04-10T11:29:45.620 回答
6

使能够:

private void enableEditText() {
    mEditText.setFocusableInTouchMode(true);
    mEditText.setFocusable(true);
    mEditText.setEnabled(true);
}

禁用:

private void disableEditText() {
    mEditText.setEnabled(false);
    mEditText.setFocusable(false);
    mEditText.setFocusableInTouchMode(false);
}
于 2018-10-10T10:21:57.767 回答
2

edittext.setInputType(0)如果要显示编辑文本但不输入任何值,则可以编写

于 2011-05-04T06:35:56.970 回答
2

下面的代码禁用了 android 中的 EditText

editText.setEnabled(false);
于 2011-05-04T06:38:52.593 回答
2
edittext.setFocusable(false); 
edittext.setEnabled(false);

InputMethodManager imm = (InputMethodManager)
  getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
  //removes on screen keyboard
于 2012-04-01T21:39:52.257 回答
1

要在 android 中禁用 edittext:

editText.setEnabled(false);
于 2011-05-04T06:16:55.697 回答
1

据我说...如果您已经在 XML 文件中声明并edittext在 XML 文件中设置属性"android:enabled=false"并在运行时禁用它,当时在 java 文件中只添加 2 或 3 行

  1. 首先创建对象
  2. 声明 EditText et1;
  3. 通过身份证获取

    et1 = (EditText) FindViewById(R.id.edittext1);
    et1.setEnabled(false);

您可以在运行时通过 java 文件和设计时通过 XML 文件启用或禁用每个控件。

于 2014-02-23T18:52:09.020 回答
0

在父母中写下:

android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"

例子:

<RelativeLayout 
android:id="@+id/menu_2_zawezanie_rl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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_width="wrap_content"
    android:layout_height="wrap_content"
    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_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:background="@null"
    android:src="@drawable/selector_btn" />

于 2013-12-02T03:30:40.420 回答
0

XMLeditable属性自API LEVEL 15起已弃用。

您现在应该使用inputType值为 的属性none。但是有一个错误使此功能无用。

在这里您可以关注问题状态。

于 2019-06-12T17:14:29.417 回答
0

inputType在 EditText 下的 layout.xml 文件中将属性设置为 none

于 2020-08-10T11:13:56.477 回答
0

试试这个 Kotlin 代码,

editField.isEnabled = !editField.isEnabled

于 2020-11-04T07:00:54.807 回答
-2

右键单击文本区域并取消选中可编辑选项:

在此处输入图像描述

于 2019-12-18T16:39:46.303 回答