EditText上不可编辑

问题描述 投票:40回答:8

我试图做一个EditText此代码不能编辑:

<EditText android:id="@+id/outputResult"
          android:inputType="text"
          android:editable="false"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:text="@string/result" />

我不得不添加下面一行,使其不可编辑

android:focusable="false" 

难道我做错了什么?

非常感谢你

android android-edittext
8个回答
124
投票

android:editable="false"应该工作,但it is deprecated,你应该使用android:inputType="none"代替。

另外,如果你想这样做的,你能做到这一点的代码:

EditText mEdit = (EditText) findViewById(R.id.yourid);
mEdit.setEnabled(false);

这也是一个可行的选择:

EditText mEdit = (EditText) findViewById(R.id.yourid);
mEdit.setKeyListener(null);

如果您打算让您的EditText不可编辑,我可以建议使用TextView小部件,而不是EditText,因为使用的EditText在这种情况下,似乎是一种毫无意义的。

编辑:改变了一些信息,因为我发现,android:editable已被弃用,你应该使用android:inputType="none",但它在Android代码中的bug;所以,请this


8
投票

如果你想使一个EditText没有从代码编辑:

void disableInput(EditText editText){
    editText.setInputType(InputType.TYPE_NULL);
    editText.setTextIsSelectable(false);
    editText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v,int keyCode,KeyEvent event) {
                return true;  // Blocks input from hardware keyboards.
        }
    });
}

如果你想删除您的EditText的水平线,只需添加:

editText.setBackground(null);

如果你想让用户复制的EditText的内容,然后使用:

editText.setTextIsSelectable(true);

7
投票
 <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/editTexteventdate"
            android:background="@null"
            android:hint="Date of Event"
            android:textSize="18dp"
            android:textColor="#fff"
            android:editable="false"
            android:focusable="false"
            android:clickable="false"

            />

收藏此

机器人:编辑=“假”

机器人:可聚焦=“假”

机器人:可点击=“假”

它为我工作


5
投票

我想我迟到了,但使用后在一起,使其工作:

 android:inputType="none"
 android:enabled="false"

5
投票

如果你真的想用一个EditText,而不是一个TextView,然后再考虑使用这三种:

android:focusable="false"

android:clickable="false"

android:longClickable="false"

编辑:“longClickable”属性禁用导致“粘贴”长按操作和或“全选”选项,以显示为一个工具提示。


3
投票

下面添加一行在XML的EditText。

android:editable="false"
android:focusable="false"
android:clickable="false"

它的工作对我来说


2
投票

用这个:

EditText edtText = (EditText) findViewById(R.id.yourEditTextId);

edtText.setEnabled(false);

你也可以在XML文件中使用。


1
投票

我也有这个问题。

我这样做:

<EditText
    android:layout_width="30dp"
    android:layout_height="wrap_content"
    android:id="@+id/yourid"
    android:editable="false"
    android:inputType="none" />

0
投票

我的要求是有一个EditText的外观和感觉,并就其点击弹出一个窗口,但使能为假不允许点击它侦听器。所以我做了这个样子。

 <EditText
        android:id="@+id/tvCustomerAge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:minWidth="80dp"
        android:layout_alignParentEnd="true"
        android:drawableRight="@drawable/arrow_down"
        android:inputType="none"
        android:focusable="false"
        android:clickable="true"
        tools:text="24"/>
© www.soinside.com 2019 - 2024. All rights reserved.