我正在尝试使用此代码将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"
我做错了吗?
非常感谢你
答案 0 :(得分:116)
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代码上有一个错误;所以请检查this。
答案 1 :(得分:7)
如果您想从代码中编辑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);
答案 2 :(得分:6)
<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"
/>
添加此
机器人:编辑=&#34;假&#34;
机器人:可聚焦=&#34;假&#34;
机器人:可点击=&#34;假&#34;
为我工作
答案 3 :(得分:5)
如果您确实要使用editText而不是textView,请考虑使用以下三种:
android:focusable="false"
android:clickable="false"
android:longClickable="false"
编辑:“ longClickable”属性禁用导致“粘贴”和/或“全选”选项显示为工具提示的长按操作。
答案 4 :(得分:4)
我想我迟到了,但是一起使用它来使它工作:
android:inputType="none"
android:enabled="false"
答案 5 :(得分:2)
在你的xml edittext中添加以下行。
android:editable="false"
android:focusable="false"
android:clickable="false"
它为我工作
答案 6 :(得分:1)
我也有这个问题。
我这样做了:
<EditText
android:layout_width="30dp"
android:layout_height="wrap_content"
android:id="@+id/yourid"
android:editable="false"
android:inputType="none" />
答案 7 :(得分:1)
EditText edtText = (EditText) findViewById(R.id.yourEditTextId);
edtText.setEnabled(false);
您也可以在xml文件中使用它。
答案 8 :(得分:1)
android:enabled = false
将该行包含在布局xml文件中。
答案 9 :(得分:1)
如果您希望禁用的EditText与启用的EditText看起来相同,则应结合使用android:enabled="false"
和android:textColor="..."
。
这里是一个例子:
<com.google.android.material.textfield.TextInputLayout
...>
<com.google.android.material.textfield.TextInputEditText
...
android:text="..."
android:enabled="false"
android:textColor="@color/dark_grey"/>
</com.google.android.material.textfield.TextInputLayout>
答案 10 :(得分:0)
我的要求是要具有Edittext的外观,并在单击时打开一个弹出窗口,但是将其设置为false将不允许单击侦听器。所以我以这种方式做到了。
data
答案 11 :(得分:0)
我无法摆脱 Tablet版本中使用过的EditText
的 SoftKeyboard ,下面的代码片段很好地完成了这项工作。
eText.setEnabled(false);
eText.setFocusable(false);
eText.setActivated(false);
eText.setInputType(InputType.TYPE_NULL);
答案 12 :(得分:0)
在您的编辑文本中设置此属性。
<EditText
android:editable="false"
/>
答案 13 :(得分:0)
android:inputType="none"
android:enabled="false"
android:clickable="false"
clickable属性是可选!您仍然可以设置文本为以编程方式编辑文本!
答案 14 :(得分:0)
如果没有必要,请尝试删除inputType属性。 android:editable="false"
正常。
答案 15 :(得分:0)
如果您希望编辑文本可点击但不可编辑,则可以尝试以下操作:
android:cursorVisible="false"
android:inputType="none"
android:clickable="true"
android:focusable="false"