Ang*_*ker 42 android android-edittext
在布局中,您可以通过以下方式将EditText窗口小部件设置为不可编辑android:editable attribute.
我怎么能在代码中这样做?我需要EditText根据条件使小部件可编辑.
小智 38
editText.setFocusable(false);
editText.setClickable(false);
Run Code Online (Sandbox Code Playgroud)
这样可以确保EditText无法选择和聚焦控件,因此无法进行编辑.
小智 28
我自己试过这个,
要禁用编辑文本:
.setFocusable(false);
Run Code Online (Sandbox Code Playgroud)
这也将setFocusableInTouchMode设置为false!
要启用编辑文本:
setFocusableInTouchMode(true);
Run Code Online (Sandbox Code Playgroud)
这也将setFocusable设置为true;
Chr*_*rry 15
执行此操作的最佳方法是使用以下单行代码:
textView.setKeyListener(null);
Run Code Online (Sandbox Code Playgroud)
文档说这个方法:
设置要与此TextView一起使用的键侦听器.这可以为null以禁止用户输入.
Jos*_*ger 13
我认为InputFilter拒绝所有变化是一个很好的解决方案:
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) : "";
}
}
});Run Code Online (Sandbox Code Playgroud)
编辑: dlazar建议(下面)更改returnto dst.subSequence(dstart, dend)以克服删除单词的行为.
小智 6
android:editable="false"
android:inputType="none"
Run Code Online (Sandbox Code Playgroud)
在你的xml或
EditText mEdit = (EditText) findViewById(R.id.yourid);
mEdit.setEnabled(false);
Run Code Online (Sandbox Code Playgroud)
要么
EditText mEdit = (EditText) findViewById(R.id.yourid);
mEdit.setKeyListener(null);
Run Code Online (Sandbox Code Playgroud)
你可以试试这个:
mEditText.setFocusable(false);
mEditText.setClickable(false);
mEditText.setFocusableInTouchMode(false);
mEditText.setLongClickable(false);
mEditText.setInputType(InputType.TYPE_NULL);
Run Code Online (Sandbox Code Playgroud)
如果您不希望用户打开编辑文本选项,这将完全禁用EditText,禁用长按.
| 归档时间: |
|
| 查看次数: |
54040 次 |
| 最近记录: |