如何在Android中的EditText
字段中禁用输入?
答案 0 :(得分:59)
您可以使用EditText.setFocusable(false)
停用修改EditText.setFocusableInTouchMode(true)
以启用编辑功能;
答案 1 :(得分:37)
我认为它是android中的一个bug ..可以通过添加这个补丁修复:) 检查这些链接 question 1 和 question 2
希望它会有用。
答案 2 :(得分:35)
在代码中:
editText.setEnabled(false);
或者,在XML中:
android:editable="false"
答案 3 :(得分:11)
假设editText
是你EditText
对象:
editText.setEnabled(false);
答案 4 :(得分:8)
只需将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"
答案 5 :(得分:8)
您可以尝试以下方法:
private void disableEditText(EditText editText) {
editText.setFocusable(false);
editText.setEnabled(false);
editText.setCursorVisible(false);
editText.setKeyListener(null);
editText.setBackgroundColor(Color.TRANSPARENT);
}
启用EditText:
已禁用EditText:
它对我有用,希望对你有帮助。
答案 6 :(得分:5)
Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);
答案 7 :(得分:2)
以下代码禁用了android中的EditText
editText.setEnabled(false);
答案 8 :(得分:2)
edittext.setFocusable(false);
edittext.setEnabled(false);
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
//removes on screen keyboard
答案 9 :(得分:1)
要在android中禁用edittext:
editText.setEnabled(false);
答案 10 :(得分:1)
如果要显示edittext但不输入任何值
,则可以编写edittext.setInputType(0)
答案 11 :(得分:1)
启用:
private void enableEditText() {
mEditText.setFocusableInTouchMode(true);
mEditText.setFocusable(true);
mEditText.setEnabled(true);
}
禁用:
private void disableEditText() {
mEditText.setEnabled(false);
mEditText.setFocusable(false);
mEditText.setFocusableInTouchMode(false);
}
答案 12 :(得分:0)
尝试此Kotlin代码,
editField.isEnabled = !editField.isEnabled
答案 13 :(得分:0)
在EditText下的layout.xml文件中将inputType
属性设置为无。
答案 14 :(得分:0)
答案 15 :(得分:0)
据我说...如果你已经在XML文件中声明了edittext
并在XML文件"android:enabled=false"
中设置了属性,那么在java文件添加时就在运行时禁用它只有2或3行
按ID获取
et1 = (EditText) FindViewById(R.id.edittext1);
et1.setEnabled(false);
您可以在运行时通过java文件启用或禁用每个控件,并按XML文件设置时间。
答案 16 :(得分: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" />
答案 17 :(得分:-1)
右键单击文本区域,然后取消选中可编辑选项: