Android中EditText实现不可编辑解决办法
android:editableisdeprecated:Usean<EditText>tomakeiteditable
android:editableisdeprecated:UseinputTypeinstead
分析:关于EditText控件的read-only问题,即:无法通过UI更改其中的内容,但可以选定部分内容,进行复制.在早期的sdk,EditText有Editable属性,现在这个属性已经deprecated了.
解决方法:
其实只需一行代码就能搞定et.setKeyListener(null);
注意,这里不是setOnKeyListener,而是setKeyListener.此方法是TextView的成员,调用后的效果完全符合预期,并且获得焦点后不会弹出输入法.
下面是官方文档的解释
SetsthekeylistenertobeusedwiththisTextView.Thiscanbenulltodisallowuserinput.Notethatthismethodhassignificantandsubtleinteractionswithsoftkeyboardsandotherinputmethod:seeKeyListener.getContentType()forimportantdetails.Callingthismethodwillreplacethecurrentcontenttypeofthetextviewwiththecontenttypereturnedbythekeylistener.
BewarnedthatifyouwantaTextViewwithakeylistenerormovementmethodnottobefocusable,orifyouwantaTextViewwithoutakeylistenerormovementmethodtobefocusable,youmustcallsetFocusableagainaftercallingthistogetthefocusabilitybackthewayyouwantit.