谁能告诉我如何使一个EditText不可编辑通过XML?我试着设置android:editable为false,但是
已弃用;而且 但是没有成功。
谁能告诉我如何使一个EditText不可编辑通过XML?我试着设置android:editable为false,但是
已弃用;而且 但是没有成功。
当前回答
disable from XML(一行):
android:focusable="false"
从Java重新启用,如果需要(也是一行):
editText.setFocusableInTouchMode(true);
其他回答
他们弃用了“可编辑的”,但没有在inputType中提供相应的工作。
顺便说一下,inputType="none"有什么影响吗?在我看来,用不用它没有任何区别。
例如,默认的editText是单行的。但是您必须选择一个inputType,使其为单行。如果你选择“none”,它仍然是多行。
正如在其他回答中提到的,您可以执行setEnabled(false),但由于您正在询问如何通过XML设置它,下面是如何做到这一点。
将以下属性添加到您的EditText:
android:enabled="false"
我也遇到过同样的问题,但经过观察,我发现android:editable="false"只有当inputtype (android: inputtype ="ANY_VALUE")没有在Edittext中给出时才会工作。
从EditText中删除inputType并使用editable = false,其工作正常。
正如你提到的,android:editable已被弃用。android:inputType="none"应该被用来代替,但它不工作,由于一个bug (https://code.google.com/p/android/issues/detail?id=2854)
但是你可以通过使用focusable来达到同样的效果。
通过XML:
<EditText ...
android:focusable="false"
</EditText>
从代码:
((EditText) findViewById(R.id.LoginNameEditText)).setFocusable(false);
我使用EditText.setFocusable(false),如果我想编辑,再次设置为true。