我有一个EditText,用户不应该在其中提供输入。所以我尝试通过
禁用它edittext.setEnabled(false);
edittext.setClickable(false);
但是当我从其他一些EditText按下softKeyboard中的“next”按钮时,它会将我引导到一个不应该可编辑的按钮,我可以在其中插入值。怎么避免这个?
答案 0 :(得分:38)
这很好用;只需将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>
答案 1 :(得分:31)
首先,保存EditText的密钥监听器:
KeyListener mKeyListener = yourTextView.getKeyListener();
yourTextView.setKeyListener(null);
然后,如果要再次启用编辑,请重新分配已保存的侦听器:
yourTextView.setKeyListener(mKeyListener);
答案 2 :(得分:17)
yourEditText.setKeyListener(null);
无需删除焦点并设置可点击的错误。
只需删除关键监听器即可完成。
还使用Android 6.0测试
答案 3 :(得分:7)
确定。我做了这样的事情并得到了结果。
edittext.setEnabled(false);
edittext.setGravity(Gravity.CENTER);
edittext.setClickable(false);
edittext.setFocusable(false);
edittext.setFilters(new InputFilter[] { new textChange() });
edittext.setInputType(0);
class textChange implements InputFilter {
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
return dest.subSequence(dstart, dend);
}
}
答案 4 :(得分:4)
尝试添加
edittext.setFocusable(false);
edittest.setFocusableInTouchMode(false);
答案 5 :(得分:3)
android:focusable="false"
android:longClickable="false"
将这两个字段添加到EditText将禁用焦点,并禁用将数据粘贴到EditText字段中。
答案 6 :(得分:1)
查看this
editText.setEnabled(false);
和editText.setFocusable(false);
将实现。
答案 7 :(得分:0)
在EditText Xml代码中。粘贴在线下方。
android:focusable="false"
答案 8 :(得分:0)
android:focusable="false"
为我工作。
答案 9 :(得分:0)
使用imeOptions属性将softKeyboard中的该按钮更改为
机器人:imeOptions = “actionDone”
将它添加到您要禁用的那个之前的EditText。
答案 10 :(得分:0)
这可能是有帮助的。 我找到了一个实现:
@Override
public boolean onTouch(View v, MotionEvent event) {
//for edit text
return locked;
}
locked
处于锁定状态。
当然,我必须使用editText.setOnTouchListener(<listener>);