我想创建一个只读的
我该如何做?
EditText
视图。实现这个功能的XML代码似乎是android:editable="false"
,但我想在代码中实现它。我该如何做?
EditText
视图。实现这个功能的XML代码似乎是android:editable="false"
,但我想在代码中实现它。请使用以下代码。
Edittext.setEnabled(false);
setEnabled(false)
,那么你的editText
看起来会被禁用(变灰等)。你可能不想改变编辑器的视觉效果。setFocusable(false)
。setFocusable(false)
(甚至使用setClickable(false)
和setFocusableInTouchMode(false)
),您仍然可以通过长按您的editText
并选择Paste
选项(除非系统剪贴板为空),来更改您的editText
的值,长按时间为几百毫秒,具体时间可以查看ViewConfiguration.getLongPressTimeout()方法。我在最新可用的API 23(Marshmallow)上进行了测试。 - patryk.beza在 XML
中使用:
android:editable="false"
例如:
<EditText
android:id="@+id/EditText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:editable="false" />
android:inputType="none"
。 - Ata Iravaniandroid:inputType="none"
,但数据仍然可以编辑。 - BlueMonkMN这对我有用:
EditText.setKeyListener(null);
editText.setInputType(InputType.TYPE_NULL);
根据文档,此选项可防止软键盘显示,同时也禁止粘贴,允许滚动并且不会改变视图的外观。但是,这也会防止在视图中选择和复制文本。
从我的测试来看,将setInputType
设置为TYPE_NULL
在功能上相当于已弃用的android:editable="false"
。另外,android:inputType="none"
似乎没有明显的效果。
android:inputType="none"
不再起作用了。 - Goke Obasa<EditText
android:id="@+id/et_newsgpa_university"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:hint="@string/hint_educational_institute"
android:textSize="@dimen/regular_text"
android:inputType="none"
android:textIsSelectable="true"
android:focusable="false"
android:maxLines="1"
android:imeOptions="actionNext"/>
android:enabled="false"
可能是一个好的替代方案。 - Elifandroid:longClickable="false"
将防止粘贴。 - Matthew最好使用TextView
代替。
editText.setEnabled(false);
editText.setFilters(new InputFilter[] { new InputFilter() {
public CharSequence filter(CharSequence src, int start, int end,
Spanned dst, int dstart, int dend) {
return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
}
} });
这将为您提供不可编辑的EditText过滤器。您需要先在editText字段上放置要输入的文本,然后应用此过滤器。
return dst.subSequence(dstart, dend);
。 - jk7yourEditText.setKeyListener(null);
yourEditText.setEnabled(false);
在XML中设置
android:inputType="none"
android:editable
对于EditText
已经被弃用。 - Derek WUI.setReadOnly(myEditText, true)
。有一些必须设置的属性,您可以在源代码中查看。 - cawandroid:inputType="none"
和android:textIsSelectable="true"
。 - Atul