如何在 Android 中禁用 EditText

发布于 2024-11-05 06:25:30 字数 54 浏览 1 评论 0 原文

如何禁止在 Android 中的 EditText 字段中输入内容?

How can I disable typing in an EditText field in Android?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(18

梦断已成空 2024-11-12 06:25:30

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

you can use EditText.setFocusable(false) to disable editing
EditText.setFocusableInTouchMode(true) to enable editing;

再浓的妆也掩不了殇 2024-11-12 06:25:30

在代码中:

editText.setEnabled(false);

Kotlin:

editText.isEnabled = false

或者,在 XML 中:

android:enabled="false"

In code:

editText.setEnabled(false);

Kotlin:

editText.isEnabled = false

Or, in XML:

android:enabled="false"
总以为 2024-11-12 06:25:30

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

问题 2

希望它有用。

I think its a bug in android..It can be fixed by adding this patch :)
Check these links
question 1
and
question 2

Hope it will be useful.

莫多说 2024-11-12 06:25:30

您可以尝试以下方法:

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

启用EditText:

禁用EditText:

Disabled EditText

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

You can try the following method :

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

Enabled EditText :

Enabled EditText

Disabled EditText :

Disabled EditText

It works for me and hope it helps you.

公布 2024-11-12 06:25:30

假设 editText 是您的 EditText 对象:

editText.setEnabled(false);

Assuming editText is you EditText object:

editText.setEnabled(false);
梦初启 2024-11-12 06:25:30

只需将 edittext 的 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>

不起作用

以下选项在代码中

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

Just set focusable property of your edittext to "false" and you are done.

<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>

Below options doesn't work

In code:

editText.setEnabled(false);
Or, in XML:
android:editable="false"

爱情眠于流年 2024-11-12 06:25:30
Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);
Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);
三生路 2024-11-12 06:25:30

启用:

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

禁用:

private void disableEditText() {
    mEditText.setEnabled(false);
    mEditText.setFocusable(false);
    mEditText.setFocusableInTouchMode(false);
}

Enable:

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

Disable:

private void disableEditText() {
    mEditText.setEnabled(false);
    mEditText.setFocusable(false);
    mEditText.setFocusableInTouchMode(false);
}
別甾虛僞 2024-11-12 06:25:30

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

You can write edittext.setInputType(0) if you want to show the edittext but not input any values

怪我入戏太深 2024-11-12 06:25:30

要在 Android 中禁用编辑文本:

editText.setEnabled(false);

To disable a edittext in android:

editText.setEnabled(false);
夢归不見 2024-11-12 06:25:30

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

editText.setEnabled(false);

The below code disables the EditText in android

editText.setEnabled(false);
向地狱狂奔 2024-11-12 06:25:30
edittext.setFocusable(false); 
edittext.setEnabled(false);

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

imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
  //removes on screen keyboard
edittext.setFocusable(false); 
edittext.setEnabled(false);

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

imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
  //removes on screen keyboard
那小子欠揍 2024-11-12 06:25:30

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

  1. 首先创建对象
  2. Declare EditText et1;
  3. 通过id获取

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

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

According to me...if you have already declared the edittext in the XML file and set the property in the XML file "android:enabled=false" and disable at runtime to it at that time in java file adding only 2 or 3 lines

  1. First create the object
  2. Declare EditText et1;
  3. Get by id

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

You can do enable or disable to every control at run time by java file and design time by XML file.

尐籹人 2024-11-12 06:25:30

API LEVEL 起,XML editable 属性已弃用15

您现在应该使用值为 noneinputType 属性。
但有一个错误导致此功能无用。

此处您可以关注问题状态。

The XML editable property is deprecated since API LEVEL 15.

You should use now the inputType property with the value none.
But there is a bug that makes this functionality useless.

Here you can follow the issue status.

流年里的时光 2024-11-12 06:25:30

在父级中写入:

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" />

Write this in parent:

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

Example:

<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" />

回忆躺在深渊里 2024-11-12 06:25:30

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

Set inputType attribute to none in your layout.xml file under EditText

污味仙女 2024-11-12 06:25:30

尝试这个 Kotlin 代码,

editField.isEnabled = !editField.isEnabled

try this Kotlin code,

editField.isEnabled = !editField.isEnabled

⒈起吃苦の倖褔 2024-11-12 06:25:30

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

在此处输入图像描述

Right click the text area and untick the editable option:

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文