问题描述
先说一下问题,一种比较直观的方式来实现EditText控件只读,不可编辑的方式是,在xml文件中设置"editable"参数,这个在控件的attributes中也有,可以勾选,设置editable=false就可以了,但是
正如图片所示,现在editable选项已经deprecated(被弃用)了,IDE建议我们用inputType选项来实现这一功能。之所以被弃用是因为有一种更好的方式来实现这一功能,你已经被警告啦!~意思是说如果之后更新的Android studio取消了这一选项的话,你的代码可能会报错了。
(我实在是不明白为什么editable=false这么简单的方式被弃用掉了~(⊙ˍ⊙)?)
解决方案
一、在代码中设置(推荐)
既然editable被弃用了,我们就不要写了。我们可以在代码中,用EditText控件属性来设置它的只读。只需在MainActivity.java(或其他需要写的代码文件中)写下:
EditText.setKeyListener(null);
此外你需要在content_main.xml中相应的EditText控件处添加属性: